Condividi tramite


Funzione QueryUnbiasedInterruptTime (realtimeapiset.h)

Ottiene il conteggio del tempo di interrupt non distorto corrente, in unità di 100 nanosecondi. Il conteggio tempo di interruzione non distorto non include il tempo trascorso dal sistema in sospensione o ibernazione.

Sintassi

BOOL QueryUnbiasedInterruptTime(
  PULONGLONG UnbiasedTime
);

Parametri

UnbiasedTime

TBD

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero. Se la funzione ha esito negativo perché viene chiamata con un parametro Null, il valore restituito è zero.

Osservazioni

Il conteggio di interrupt-time inizia a zero all'avvio del sistema e viene incrementato a ogni interrupt di clock per la lunghezza di un segno di spunta dell'orologio. La lunghezza esatta di un tick di clock dipende dall'hardware sottostante e può variare tra i sistemi.

Il numero di interrupt-time recuperato dalla funzione QueryUnbiasedInterruptTime riflette solo l'ora in cui il sistema si trova nello stato di lavoro. Pertanto, il conteggio di interrupt-time non è "distorto" per tempo trascorso dal sistema in sospensione o ibernazione. Il sistema usa tempo di interruzione distorto per alcune operazioni, ad esempio verificando che i timer relativi che sarebbero scaduti durante la sospensione scadono immediatamente al risveglio.

A differenza dell'ora di sistema, il conteggio dei tempi di interrupt non è soggetto a modifiche da parte degli utenti o del servizio ora di Windows. Le applicazioni possono usare il conteggio dei tempi di interrupt per misurare durate più fine rispetto a quelle possibili con l'ora di sistema. Le applicazioni che richiedono maggiore precisione rispetto al conteggio dei tempi di interrupt devono usare un timer ad alta risoluzione . Utilizzare la funzione queryPerformanceFrequency per recuperare la frequenza del timer ad alta risoluzione e la funzione QueryPerformanceCounter per recuperare il valore del contatore.

La risoluzione del timer impostata dalle funzioni timeBeginPeriod e timeEndPeriod influisce sulla risoluzione della funzione QueryUnbiasedInterruptTime. Tuttavia, l'aumento della risoluzione del timer non è consigliato perché può ridurre le prestazioni complessive del sistema e aumentare il consumo di energia del sistema impedendo al processore di immettere stati di risparmio energia. Al contrario, le applicazioni devono usare un timer ad alta risoluzione.

Nota La funzione QueryUnbiasedInterruptTime produce risultati diversi nelle build di debug ("controllate") di Windows, perché il conteggio dei tempi di interrupt e il conteggio dei tick sono avanzati di circa 49 giorni. Ciò consente di identificare i bug che potrebbero non verificarsi fino a quando il sistema non è stato eseguito per molto tempo.
 
Per compilare un'applicazione che usa questa funzione, definire _WIN32_WINNT come 0x0601 o versione successiva. Per altre informazioni, vedere Uso delle intestazioni di Windows.

Fabbisogno

Requisito Valore
client minimo supportato Windows 7, Windows 8 [app desktop | App UWP]
server minimo supportato Windows Server 2008 R2 [app desktop | App UWP]
piattaforma di destinazione Finestre
intestazione realtimeapiset.h (include Windows.h)
libreria Kernel32.lib
dll Kernel32.dll

Vedere anche

tempo di interruzione

QueryInterruptTime

QueryInterruptTimePrecise

QueryUnbiasedInterruptTimePrecise

di power states di sistema

ora di Windows