KeGetCurrentProcessorNumberEx 函式 (wdm.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 和更新版本中使用任何群組導向功能的驅動程式應該呼叫 KeGetCurrentProcessorNumberEx ,而不是 KeGetCurrentProcessorNumber。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows 7 和更新版本的 Windows 中使用。 |
目標平台 | Universal |
標頭 | wdm.h (包含 Ntddk.h、Wdm.h、Ntddk.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | 任何層級 |