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 開始提供。 |
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | 任何層級 |