KeQueryInterruptTimePrecise 函式 (wdm.h)
KeQueryInterruptTimePrecise 例程會傳回系統目前的值,中斷時間 計數,精確度為毫秒內。
語法
ULONG64 KeQueryInterruptTimePrecise(
[out] PULONG64 QpcTimeStamp
);
參數
[out] QpcTimeStamp
ULONG64變數的指標,例程會將用來插補傳回值的性能計數器值寫入其中。
傳回值
目前插斷時間計數以 100 奈秒為單位。
言論
KeQueryInterruptTimePrecise 會傳回系統的目前中斷時間,這是上次啟動作系統之後的時間量。 KeQueryInterruptTimePrecise 類似於 KeQueryInterruptTime 例程,但更精確。
KeQueryInterruptTime 所報告的中斷時間是以系統時鐘定時器的最新刻度為基礎。 時鐘定時器是定期產生系統時鐘中斷的硬體定時器。 時鐘定時器中斷之間的統一期間稱為系統時鐘刻度,而且通常取決於硬體平臺,介於 500 毫秒到 15.625 毫秒的範圍內。 KeQueryInterruptTime 所擷取的中斷時間值 在系統時鐘刻度內是正確的。
若要提供比 KeQueryInterruptTime更精確的中斷時間值,KeQueryInterruptTimePrecise 會使用系統性能計數器來測量自上次時鐘定時器中斷后經過的時間,並將這次新增至與最新時鐘時間相關聯的中斷時間。 KeQueryInterruptTimePrecise 所報告的中斷時間精確到微秒內。
在某些硬體平臺上,KeQueryInterruptTimePrecise 呼叫速度可能會比 KeQueryInterruptTime 呼叫慢。 原因是 KeQueryInterruptTimePrecise 讀取性能計數器,這會造成額外的延遲。 如需詳細資訊,請參閱 KeQueryPerformanceCounter。
呼叫 KeQueryTimeIncrement 例程,以判斷系統時鐘刻度的大小。
精確的中斷時間可用來測量系統執行時非常精細的持續時間,因為設定或重設系統時間的作業不會影響系統中斷時間計數。
不過,電源管理狀態變更會影響系統中斷時間計數。 中斷時間計數的維護會在系統睡眠狀態期間暫停。 當後續的喚醒狀態轉換發生時,系統會將「偏差」值新增至中斷時間計數,以補償這類睡眠狀態的估計持續時間。 KeQueryInterruptTimePrecise 傳回的中斷時間計數 包含此偏差值。 若要取得不偏的中斷時間計數,請使用 KeQueryUnbiasedInterruptTime。 目前無法使用不偏不偏中斷時間計數的精確版本。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 從 Windows 8.1 開始提供。 |
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何層級 |