KeQueryActiveProcessorCountEx 函式 (ntddk.h)
KeQueryActiveProcessorCountEx 例程會傳回多處理器系統或整個系統中指定群組的作用中邏輯處理器數目。
語法
ULONG KeQueryActiveProcessorCountEx(
[in] USHORT GroupNumber
);
參數
[in] GroupNumber
組號。 如果多處理器系統包含 n 個群組,則有效的組號範圍從 0 到 n-1。 若要計算系統中所有群組中的所有作用中處理器,請將此參數設定為 ALL_PROCESSOR_GROUPS,其定義於頭檔 Winnt.h 和 Ntdef.h 中。
傳回值
KeQueryActiveProcessorCountEx 會傳回群組中的使用中邏輯處理器數目。 如果 GroupNumber 不是有效的組號,而且不是ALL_PROCESSOR_GROUPS,則會傳回零。
備註
作用中的邏輯處理器是 Windows 已啟動並新增至多處理器系統的邏輯處理器。 使用中處理器一詞適用於可用來執行處理工作的處理器,不論處理器目前正在執行處理工作還是閑置。 在某些系統中,使用中處理器的數目可能會維持不變,從系統啟動到關機。 在其他系統中,Windows 可能會在系統執行時動態新增作用中的處理器。 Windows 永遠不會從系統移除使用中的處理器。 因此,多處理器系統中的作用中處理器數目可以在系統啟動和關機之間增加,但這個數字永遠不會減少。
相關的例程 KeQueryActiveProcessorCount 會傳回使用中的處理器計數,但此例程與 KeQueryActiveProcessorCountEx 不同,不接受群組編號做為輸入參數。 在 Windows 7 和更新版本的 Windows 作業系統中, KeQueryActiveProcessorCount 會傳回群組 0 的作用中處理器計數,這與舊版 Windows 中不支援群組的這個例程行為相容。 此行為可確保呼叫 KeQueryActiveProcessorCount 且不使用任何群組導向功能的現有驅動程式會在具有兩個或多個群組的多處理器系統中正確執行。 不過,在 Windows 7 和更新版本的 Windows 操作系統中使用任何群組導向功能的驅動程式應該呼叫 KeQueryActiveProcessorCountEx, 而不是 KeQueryActiveProcessorCount。
如需使用 KeQueryActiveProcessorCountEx 的程式碼範例,請參閱 KeGetProcessorNumberFromIndex。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows 7 和更新版本的 Windows。 |
目標平台 | Universal |
標頭 | ntddk.h (包含 Ntddk.h、Wdm.h、Ntddk.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | 任何層級 |