?? ???? ??? ????? leap ???? ???? ?????? ??? ??????

?????? ????????? ?????? ?????????
???? ???????: 274323 - ??? ???????? ???? ????? ????? ??? ???????.
????? ???? | ?? ????

?? ??? ??????

???????

??????? ???? ?? ??????? ?????? ?????? QueryPerformanceCounter ?? ???? ??? ????? leap ?????? ?? ???. ?? ???? ??? ????? ??? ????.

?????

???? ??? ??????? ????? ??? ????? ?? interconnect ???? ??????? (PCI) ??? ??? ??????? ???????? ???????? (ISA) ?? ??? chipsets. ??? ??????? ??? ????? ?????? ??? ??? ??? ????. ???? ???? ??? ????? ???? PCI ???? ? ??? ???? ???? ??????? ????? ?? ????? ??? ?????? ?? ?????. ???? ??????? ?????? ?? ??????? ??? ?????? ?? ???? ????? ????? ???? ??????. ???? ??? ?????? ???? ?? ?????? ?? QueryPerformanceCounter ???????? ??? ??????.

????

??? ?????? ??????? ???? ??? ????? ??????? ??????? ?? ????? ??? ?????? ??????????? ????????? ??? QueryPerformanceCounter ?? ??????? ?? ????? ??? ?????? ??????????? ????????? ??? ?????? GetTickCount. ??? ??? ???? ???? ???? ???????? ??? () QueryPerformanceCounter ???? ?? ???? ????? ?????? ???????? ??? GetTickCount ?? ???? ?? ???? ?????? ?? ???? ?????? ??? ???????? ??? ??????. ???? ????? ????????? ???????? ?? ????? ??? ??????? ????? ?????? ????.

?????

???? ??????? ??? ?????? ??? ???????. ??? ???? ?????? ????? ????? ???? ???? ??????? ??? ?????? ????? ?? ?? ?????? ?????.

??????? ????

????? ???? ??????? ???? ????? ????? errata. ?? ???? ??? ???? ????? ?????? deviate ?? ??????? ????????. ?????? ??? ??????? ??? errata ?? chipsets ????? ?????? ??????? ????? ?????? ?????? ?????? ?????.

??? ????? ???????? PCI ?????? ?????? ???? PCI ??? ??????? ?????? ?? ????? Windows:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI
????? ????? ???????? ??????? ??????? ??????
VEN_ xxxx & DEV_yyyy & SUBSYS_aaaaaaaa & REV_bb
??? xxxx: yyyy ???? ???? PCI.

??????? ?????? ?? ?????? PCI ??????? ?? ??????? ???? ????? ?????? ???? ?? ???? ???? ??????:
?? ??? ??????????? ??? ??????
???? pci???? ???????
1039:0530?????? ????????? ????? (SiS)
1039:0620?????? ????????? ????? (SiS)
10b9:0533Labs acer, Inc. (?? ALi)
10b9:1533Labs acer, Inc. (?? ALi)
1106:0596???? ??????, Inc. (VIA)
1106:0686???? ??????, Inc. (VIA)
1166:004f???? Serverworks
1166:0050???? Serverworks
8086:7110???? Intel
???? ????? ??? ??????? ??? Microsoft ????? ?????? ?? chipsets ??????.

??? ?????

???? ????? ????????? ???????? ?????? ????? ?????? ????? ????? ?? leaps ???? ??????. ?? ???? ????? ????????? ???????? ??? ???? ??????? ?? ?????? ????? PIIX4 ??? ???? ??????? ??? ??????? ???? ?????? ??? sporadically ????? leaps ?? ???? ???? ??????.
#include <windows.h>
#include <stdio.h>

void main() {

   LARGE_INTEGER liFrequency;
   LARGE_INTEGER liCurrent;
   LARGE_INTEGER liLast;
   LARGE_INTEGER liRecent[10];
   DWORD dwCurrent;
   DWORD dwLast;
   DWORD dwPerfElapsed;
   DWORD dwTickElapsed;
   int i = 0;
   int j;

   // Save the performance counter frequency for later use.
   if (!QueryPerformanceFrequency(&liFrequency))
      printf("QPF() failed with error %d\n", GetLastError());

   // Query the performance counter value and tick count.
   dwCurrent = GetTickCount();
   if (!QueryPerformanceCounter(&liCurrent))
      printf("QPC() failed with error %d\n", GetLastError());

   liLast = liCurrent;
   dwLast = dwCurrent;

   while (TRUE) {

      // Query the performance counter value and tick count.
      if (!QueryPerformanceCounter(&liCurrent))
         printf("QPC() failed with error %d\n", GetLastError());
      dwCurrent = GetTickCount();

      // Store the performance counter value in the list of recent values.
      liRecent[i].QuadPart = liCurrent.QuadPart;
      i = (i+1) % 10;

      // Convert difference in performance counter values to milliseconds.
      dwPerfElapsed = (DWORD) (((liCurrent.QuadPart - liLast.QuadPart) 
            * 1000) / liFrequency.QuadPart);
      
      dwTickElapsed = dwCurrent - dwLast;

      // Check for a discrepancy greater than 500 milliseconds.
      if (abs(dwPerfElapsed - dwTickElapsed) > 500) { 

         // Print the previous 9 performance-counter values.
         for (j=9; j>0; j--) {
            printf("      Previous %d:  %I64X\n", j, liRecent[i].QuadPart);
            i = (i+1) % 10;
         }

         // Print the leap value.
         printf( "LEAP: Current:     %I64X  delta = %I64X\n", 
               liCurrent.QuadPart, liCurrent.QuadPart - liLast.QuadPart);
         
         // Retrieve and print the next 9 performance-counter values.
         for (j=1; j<=9; j++) {
            
            QueryPerformanceCounter(&liCurrent);
            printf("      Next     %d:  %I64X\n", j, liCurrent.QuadPart);
            
            liRecent[i].QuadPart = liCurrent.QuadPart;
            i = (i+1) % 10;
         }

         printf("\n");
      }

      liLast = liCurrent;
      dwLast = dwCurrent;
   }

   return;
}

???????

???? ???????: 274323 - ????? ??? ??????: 30/????/1427 - ??????: 3.1
????? ???
  • Microsoft Win32 ????? ????? ???????
????? ??????: 
kbmt kbapi kbkernbase kbperfmon kbprb KB274323 KbMtar
????? ????
???: ??? ????? ??? ?????? ???????? ?????? ????? ???? ????? ?????????? ????? ?? ????????? ?????? ????. ???? ???? ?????????? ???? ?? ???????? ???????? ?????? ????????? ????? ????????? ???????? ????? ???????? ?????? ?? ?????? ??? ?? ???????? ???????? ?? ????? ??????? ?????? ??? ??????? ?????? ??. ?????? ?? ???? ??? ??????? ???????? ????? ?? ???? ????? ?????? ??? ????? ??? ????? ??????? ?? ????? ?? ?????? ??? ??? ??????? ??????? ?? ????? ????? ????? ????? ?????. ?? ????? ???? ?????????? ??????? ??? ????? ?? ??????? ?? ????? ?????? ?? ??? ????? ?? ????? ??????? ?? ???????? ?? ??? ???????. ???? ???? ?????????? ???????? ??? ????? ?????? ??????? ??????
???? ??? ????? ??????? ?????? ??????????274323
????? ??????? ?? ????? ???? ?? ????? ???????
?? ????? ????? ?????? ???? ???? ???? ??? ??????? ??? ?? ? ?? ??? ??????? Microsoft ??? ????? ??? ??????? ????? ?????? ?????

????? ???????

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com