KeQueryActiveProcessorCount 函式 (ntddk.h)
KeQueryActiveProcessorCount 例程會傳回目前使用中處理器的數目。
語法
ULONG KeQueryActiveProcessorCount(
[out, optional] PKAFFINITY ActiveProcessors
);
參數
[out, optional] ActiveProcessors
KAFFINITY型別變數的指標,例程會將代表目前使用中處理器集的位掩碼寫入其中。 在熱新增環境中,此遮罩可能會在運行時間期間變更。 這個參數是選擇性的,如果呼叫端不需要使用中處理器的遮罩,則可以指定為 NULL。
傳回值
KeQueryActiveProcessorCount 會傳回目前使用中處理器的數目。
言論
裝置驅動程式會呼叫 KeQueryActiveProcessorCount 例程,以擷取目前作用中的處理器數目。 針對 Windows Vista 和更新版本的 Windows作系統所建置的設備驅動器,不應基於此目的使用 KeNumberProcessors 核心變數。
呼叫者無法假設 KeQueryActiveProcessorCount 例程會將處理器對應至傳回 KAFFINITY 值中的位,或是每次呼叫例程時都會傳回相同的位掩碼。
呼叫端也必須注意,KeQueryActiveProcessorCount 所傳回的值 可以在支援熱新增 CPU 功能的 Windows 版本上變更。
如有必要,請呼叫 KeRegisterProcessorChangeCallback 例程,以註冊對處理器數目的變更通知。
若要只查詢親和性遮罩而不取得使用中處理器的數目,請使用 KeQueryActiveProcessors。
Windows 7 和更新版本的 Windows 支援處理器群組。 設計來處理處理器群組相關信息的驅動程式應該使用 KeQueryActiveProcessorCountEx 例程,其會指定處理器群組,而不是 KeQueryActiveProcessorCount,這不會。 不過,在 Windows 7 和更新版本中實作 KeQueryActiveProcessorCount,可為舊版 Windows 所撰寫的驅動程式提供相容性,這些驅動程式不支持處理器群組。 在此實作中,KeQueryActiveProcessorCount 會傳回群組 0 中的使用中邏輯處理器數目,並將親和性遮罩寫入至 *ActiveProcessors,以指定群組 0 中的使用中邏輯處理器集。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 適用於 Windows Vista 和更新版本的 Windows。 |
目標平臺 | 普遍 |
標頭 | ntddk.h (include Wdm.h, Ntddk.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何層級 |