Fonction KeQueryUnbiasedInterruptTime (wdm.h)
La routine KeQueryUnbiasedInterruptTime retourne la valeur actuelle du nombre de temps d’interruption système.
Syntaxe
ULONGLONG KeQueryUnbiasedInterruptTime();
Valeur de retour
KeQueryUnbiasedInterruptTime retourne le nombre de temps d’interruption actuel en unités de 100 nanosecondes. Le nombre commence à zéro lorsque l’ordinateur démarre. Mises à jour à ce nombre sont suspendus lorsque l’ordinateur entre en état de veille et sont repris lorsque l’ordinateur se réveille.
Remarques
Les pilotes en mode noyau peuvent appeler cette routine pour mesurer des durées relativement précises.
Cette routine retourne l’heure d’interruption du système, qui correspond au délai écoulé depuis le dernier démarrage du système d’exploitation. Le nombre de temps d’interruption commence à zéro au démarrage du système d’exploitation et est incrémenté à chaque interruption d’horloge par la longueur d’une horloge. Pour diverses raisons, telles que les différences matérielles, la longueur d’une horloge système peut varier d’un ordinateur à l’autre. Appelez la routine KeQueryTimeIncrement pour déterminer la taille d’une horloge système.
Les routines KeQueryUnbiasedInterruptTime et KeQueryInterruptTime sont similaires, mais elles diffèrent dans la façon dont elles prennent en compte les périodes pendant lesquelles le système d’exploitation suspend les mises à jour du nombre de temps d’interruption. Par exemple, ces mises à jour sont suspendues lorsque l’ordinateur est en état de veille du système. Pour compenser les périodes pendant lesquelles les mises à jour du nombre sont suspendues, KeQueryInterruptTime retourne une valeur de nombre biaisée qu’il calcule en ajoutant un nombre de biais au nombre de temps d’interruption brut. Le nombre de biais est la somme estimée de toutes les mises à jour du nombre de temps d’interruption que le système d’exploitation a manqué pendant la suspension du comptage. En revanche, KeQueryUnbiasedInterruptTime retourne le nombre brut et non biaisé.
Contrairement à la routine KeQuerySystemTime , KeQueryUnbiasedInterruptTime retourne une valeur de nombre qui n’est pas affectée par les opérations qui définissent ou réinitialisent l’heure système. En outre, l’heure système signalée par KeQuerySystemTime est généralement mise à jour toutes les dix millisecondes environ. En revanche, le nombre retourné par KeQueryUnbiasedInterruptTime est mis à jour au moins une fois par horloge système.
Dans Windows 2000 et versions ultérieures du système d’exploitation Windows, la routine KeQueryPerformanceCounter fournit le meilleur nombre d’exécutions grainé disponible à partir du système d’exploitation.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 7. |
Plateforme cible | Universal |
En-tête | wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | N’importe quel niveau |