KeQuerySystemTimePrecise, fonction (wdm.h)

La routine KeQuerySystemTimePrecise récupère l’heure système actuelle et est plus précise que la routine KeQuerySystemTime .

Syntaxe

void KeQuerySystemTimePrecise(
  [out] PLARGE_INTEGER CurrentTime
);

Paramètres

[out] CurrentTime

Pointeur vers une variable LARGE_INTEGER dans laquelle la routine écrit l’heure système actuelle.

Valeur de retour

None

Remarques

L’heure système est un nombre d’intervalles de 100 nanosecondes depuis le 1er janvier 1601. Cette valeur est calculée pour le fuseau horaire GMT. Pour ajuster cette valeur pour le fuseau horaire local, appelez la routine ExSystemTimeToLocalTime .

KeQuerySystemTimePrecise est similaire à la routine KeQuerySystemTime , mais est plus précis. L’heure système signalée par KeQuerySystemTime est basée sur la dernière graduation du minuteur d’horloge système. Le minuteur d’horloge est le minuteur matériel qui génère régulièrement des interruptions pour l’horloge système. La période uniforme entre les interruptions du minuteur d’horloge est appelée « cycles d’horloge système » et est généralement comprise entre 500 microsecondes et 15,625 millisecondes, selon la plateforme matérielle. La valeur d’heure système récupérée par KeQuerySystemTime est précise dans une horloge système.

Pour fournir une valeur d’heure système plus précise que celle de KeQuerySystemTime, KeQuerySystemTimePrecise utilise le compteur de performances système pour mesurer le temps écoulé depuis la dernière interruption du minuteur d’horloge, et ajoute cette heure à l’heure d’horloge système qu’il calcule à partir du nombre de minuteurs d’horloge. L’heure système signalée par KeQuerySystemTimePrecise est exacte à une microseconde.

Sur certaines plateformes matérielles, un appel KeQuerySystemTimePrecise peut être plus lent qu’un appel KeQuerySystemTime . La raison en est que KeQuerySystemTimePrecise lit le compteur de performances, ce qui peut introduire un délai supplémentaire. Pour plus d’informations, consultez KeQueryPerformanceCounter.

Appelez la routine KeQueryTimeIncrement pour déterminer la durée d’une horloge système.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 8.
Plateforme cible Universal
En-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL N’importe quel niveau

Voir aussi

ExSystemTimeToLocalTime

KeQueryPerformanceCounter

KeQuerySystemTime

KeQueryTickCount

KeQueryTimeIncrement