Partager via


QueryUnbiasedInterruptTime, fonction (realtimeapiset.h)

Obtient le nombre d’interruptions non biaisés actuel, en unités de 100 nanosecondes. Le nombre d’interruptions non biaisées n’inclut pas le temps passé par le système en veille ou en veille prolongée.

Syntaxe

BOOL QueryUnbiasedInterruptTime(
  PULONGLONG UnbiasedTime
);

Paramètres

UnbiasedTime

TBD

Valeur de retour

Si la fonction réussit, la valeur de retour est différente de zéro. Si la fonction échoue, car elle est appelée avec un paramètre Null, la valeur de retour est égale à zéro.

Remarques

Le nombre d’interruptions commence à zéro lorsque le système démarre et est incrémenté à chaque interruption d’horloge par la longueur d’une graduation d’horloge. La longueur exacte d’une graduation d’horloge dépend du matériel sous-jacent et peut varier entre les systèmes.

Le nombre d’interruptions récupéré par la fonction QueryUnbiasedInterruptTime reflète uniquement la durée pendant laquelle le système est dans l’état de travail. Par conséquent, le nombre d’interruptions n’est pas « biaisé » par le temps que le système passe en veille ou en veille prolongée. Le système utilise un temps d’interruption biaisé pour certaines opérations, par exemple s’assurer que les minuteurs relatifs qui auraient expiré pendant le sommeil expirent immédiatement lors du réveil.

Contrairement à l’heure système, le nombre d’interruptions n’est pas soumis aux ajustements effectués par les utilisateurs ou le service de temps Windows. Les applications peuvent utiliser le nombre d’interruptions pour mesurer des durées plus fines que possible avec le temps système. Les applications qui nécessitent une précision supérieure au nombre d’interruptions doivent utiliser un minuteur haute résolution. Utilisez la fonction QueryPerformanceFrequency pour récupérer la fréquence du minuteur à haute résolution et la fonction QueryPerformanceCounter pour récupérer la valeur du compteur.

La résolution du minuteur définie par les fonctions timeBeginPeriod et timeEndPeriod affecte la résolution de la fonction QueryUnbiasedInterruptTime. Toutefois, l’augmentation de la résolution du minuteur n’est pas recommandée, car elle peut réduire les performances globales du système et augmenter la consommation d’alimentation du système en empêchant le processeur d’entrer dans des états d’économie d’énergie. Au lieu de cela, les applications doivent utiliser un minuteur haute résolution.

Remarque La fonction QueryUnbiasedInterruptTime produit des résultats différents sur les builds de débogage (« coché ») de Windows, car le nombre d’interruptions et le nombre de graduations sont avancés d’environ 49 jours. Cela permet d’identifier les bogues qui peuvent ne pas se produire tant que le système n’a pas été en cours d’exécution depuis longtemps.
 
Pour compiler une application qui utilise cette fonction, définissez _WIN32_WINNT en tant que 0x0601 ou version ultérieure. Pour plus d’informations, consultez Utilisation des en-têtes Windows.

Exigences

Exigence Valeur
client minimum pris en charge Windows 7, Windows 8 [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows Server 2008 R2 [applications de bureau | Applications UWP]
plateforme cible Windows
d’en-tête realtimeapiset.h (include Windows.h)
bibliothèque Mincore.lib
DLL Kernel32.dll

Voir aussi

temps d’interruption

QueryInterruptTime

QueryInterruptTimePrecise

QueryUnbiasedInterruptTimePrecise

System Power States

de temps Windows