KeGetCurrentProcessorNumberEx 函式 (ntddk.h)
KeGetCurrentProcessorNumberEx 例程會取得呼叫端正在執行之邏輯處理器的處理器編號。
語法
ULONG KeGetCurrentProcessorNumberEx(
[out, optional] PPROCESSOR_NUMBER ProcNumber
);
參數
[out, optional] ProcNumber
呼叫端配置的緩衝區指標,例程會將識別目前邏輯處理器 的PROCESSOR_NUMBER 結構寫入其中。 這個結構包含群組編號和群組相對處理器編號。 如果您不需要此資訊,可以將此參數設定為 NULL 。
傳回值
KeGetCurrentProcessorNumberEx 會傳回呼叫端執行所在的邏輯處理器的全系統處理器索引。
備註
如果 ProcNumber 不是 NULL,ProcNumber 所指向的緩衝區必須夠大,才能包含PROCESSOR_NUMBER結構。 相較於包含群組編號和群組相對處理器編號的這個結構,傳回值是處理器索引,可識別整個多處理器系統的處理器。
例如,如果多處理器系統包含兩個群組,而每個群組包含64個邏輯處理器,則每個群組中的處理器編號範圍從0到63,但全系統的處理器索引範圍從0到127。
相關的例程 KeGetCurrentProcessorNumber 會傳回目前的處理器編號,但此例程與 KeGetCurrentProcessorNumberEx 不同,不會提供處理器的組號。 在 Windows 7 和更新版本的 Windows 作業系統中,如果呼叫端在群組 0 的處理器上執行, KeGetCurrentProcessorNumber 會傳回群組相對處理器號碼,這與舊版 Windows 中不支援群組的這個例程行為相容。 不過,如果呼叫端在群組0以外的任何群組的處理器上執行,此例程會傳回小於群組0中處理器數目的數位。 此行為可確保傳回值小於 KeQueryActiveProcessorCount 例程的傳回值。 呼叫 KeGetCurrentProcessorNumber 且未使用任何群組導向功能的現有驅動程式會在具有兩個或多個群組的多處理器系統中正確執行。 不過,在 Windows 7 和更新版本的 Windows 操作系統中使用任何群組導向功能的驅動程式應該呼叫 KeGetCurrentProcessorNumberEx, 而不是 KeGetCurrentProcessorNumber。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows 7 和更新版本的 Windows。 |
目標平台 | Universal |
標頭 | ntddk.h (包含 Ntddk.h、Wdm.h、Ntddk.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | 任何層級 |