Share via


Funzione QueryUnbiasedInterruptTime (realtimeapiset.h)

Ottiene il conteggio del tempo di interruzione non crittografato corrente, in unità di 100 nanosecondi. Il numero di interruzioni non crittografato non include il tempo trascorso dal sistema nel sonno o nell'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.

Commenti

Il conteggio dei tempi di interruzione inizia a zero quando il sistema viene avviato e viene incrementato a ogni interruzione dell'orologio per la lunghezza di un segno di spunta dell'orologio. La lunghezza esatta di un segno di spunta dell'orologio dipende dall'hardware sottostante e può variare tra i sistemi.

Il conteggio del tempo di interruzione recuperato dalla funzione QueryUnbiasedInterruptTime riflette solo il tempo in cui il sistema si trova nello stato di lavoro. Pertanto, il conteggio dei tempi di interruzione non è "pregiudiziato" per tempo trascorso dal sistema in sospensione o in ibernazione. Il sistema usa il tempo di interruzione pregiudiziato per alcune operazioni, ad esempio assicurando che i timer relativi che sarebbero scaduti durante la scadenza del sonno immediatamente dopo la sveglia.

A differenza del tempo di sistema, il conteggio tempo di interruzione non è soggetto a modifiche da parte degli utenti o del servizio ora di Windows. Le applicazioni possono usare il conteggio dei tempi di interruzione per misurare le durate più dettagliate rispetto a quelle possibili con il tempo di sistema. Le applicazioni che richiedono maggiore precisione rispetto al conteggio dei tempi di interruzione 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 timer impostata dalle funzioni timeBeginPeriod e timeEndPeriod influisce sulla risoluzione della funzione QueryUnbiasedInterruptTime . Tuttavia, l'aumento della risoluzione 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. Le applicazioni devono invece usare un timer ad alta risoluzione.

Nota La funzione QueryUnbiasedInterruptTime produce risultati diversi nelle build di debug ("checked") di Windows, perché il conteggio dei tempi di interruzione 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 in esecuzione per molto tempo. La compilazione selezionata è disponibile per i sottoscrittori MSDN tramite il sito Web MICROSOFT Developer Network (MSDN).
 
Per compilare un'applicazione che usa questa funzione, definire _WIN32_WINNT come 0x0601 o versioni successive. Per altre informazioni, vedere Uso delle intestazioni di Windows.

Requisiti

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 Windows
Intestazione realtimeapiset.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Tempo di interruzione

QueryInterruptTime

QueryInterruptTimePrecise

QueryUnbiasedInterruptTimePrecise

Stati di alimentazione del sistema

Ora di Windows