KeQueryHardwareCounterConfiguration 函式 (ntddk.h)
KeQueryHardwareCounterConfiguration 例程會查詢操作系統,以取得要用於線程分析的硬體計數器清單。
語法
NTSTATUS KeQueryHardwareCounterConfiguration(
[out] PHARDWARE_COUNTER CounterArray,
[in] ULONG MaximumCount,
[out] PULONG Count
);
參數
[out] CounterArray
呼叫端配置緩衝區的指標,例程會將類型 為 HARDWARE_COUNTER 的項目數位寫入其中。 每個數位元素都是包含硬體計數器相關信息的結構。 數位針對指派給線程分析的每個硬體計數器,各包含一個專案。 如果例程失敗,它不會寫入這個緩衝區。
[in] MaximumCount
指定例程可以寫入 CounterArray 參數所指向之緩衝區的最大項目數。 呼叫端配置的緩衝區大小至少必須是 MaximumCount * 大小of (HARDWARE_COUNTER) 個字節。
[out] Count
例程寫入已寫入 CounterArray 參數所指向之緩衝區之陣列元素數目的位置指標。 如果 MaximumCount 指定的緩衝區長度不足以包含整個數位列,則例程會將所需的長度寫入 *Count ,並傳回STATUS_BUFFER_TOO_SMALL。
傳回值
如果呼叫成功,KeQueryHardwareCounterConfiguration 會傳回STATUS_SUCCESS。 可能的錯誤傳回值包括:
傳回碼 | Description |
---|---|
STATUS_BUFFER_TOO_SMALL | MaximumCount 參數會指定不足以包含計數器組態信息的緩衝區長度。 |
STATUS_NOT_IMPLEMENTED | 此例程不會針對呼叫端執行所在的處理器架構實作。 |
備註
在 Windows 7 中,此例程只會針對以 x86 為基礎的 x64 架構和 Itanium 架構實作。 如果呼叫端在不支援的處理器架構上執行,則例程會傳回STATUS_NOT_IMPLEMENTED。
若要將硬體計數器組態設定為用於線程分析,請呼叫 KeSetHardwareCounterConfiguration 例程。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows 7 和更新版本的 Windows。 |
目標平台 | Universal |
標頭 | ntddk.h (包含 Ntddk.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | <= APC_LEVEL |