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作系統中,KeGetCurrentProcessorNumber 如果呼叫端在群組 0 中的處理器上執行,則會傳回群組相對處理器號碼,這與舊版 Windows 不支援群組的這個例程行為相容。 不過,如果呼叫端在群組0以外的任何群組的處理器上執行,此例程會傳回小於群組0中處理器數目的數位。 此行為可確保傳回值小於 KeQueryActiveProcessorCount 例程的傳回值。 呼叫 KeGetCurrentProcessorNumber 的現有驅動程式,且未在具有兩個或多個群組的多重處理器系統中正確執行任何群組導向功能。 不過,在 Windows 7 和更新版本中使用任何群組導向功能的驅動程式應該呼叫 KeGetCurrentProcessorNumberEx,而不是 KeGetCurrentProcessorNumber。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 適用於 Windows 7 和更新版本的 Windows。 |
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Ntddk.h、Wdm.h、Ntddk.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何層級 |