KeGetCurrentProcessorNumber 函式 (ntddk.h)
KeGetCurrentProcessorNumber 例程會傳回呼叫者執行所在的目前處理器系統指派號碼。
語法
ULONG KeGetCurrentProcessorNumber();
傳回值
KeGetCurrentProcessorNumber 會傳回 ULONG 值,代表呼叫端目前正在執行的處理器。
言論
可以呼叫KeGetCurrentProcessorNumber,在驅動程式開發期間偵錯 SMP 機器上的微調鎖定使用量。 如果驅動程式維護一些每個處理器的數據,並嘗試減少快取行爭用,則驅動程式也可以呼叫 KeGetCurrentProcessorNumber。
SMP 機器中的處理器數目是以零起始的值。
Windows 7 和更新版本的 Windows 支援處理器群組。 設計來處理處理器群組相關信息的驅動程式應該使用 KeGetCurrentProcessorNumberEx 例程,指定處理器群組,而不是 KeGetCurrentProcessorNumber,但不會。 不過,在 Windows 7 和更新版本中實作 KeGetCurrentProcessorNumber,可為針對舊版 Windows 所撰寫的驅動程式提供相容性。 在此實作中,KeGetCurrentProcessorNumber 如果呼叫端在群組 0 中的處理器上執行,則會傳回群組相對處理器號碼,這與舊版 Windows 不支持處理器群組的這個例程行為相容。 如果呼叫端在群組 0 以外的任何群組的處理器上執行,此例程會傳回小於群組 0 中處理器數目的數位。 此行為可確保傳回值小於 KeQueryActiveProcessorCount 例程的傳回值。
如果呼叫 KeGetCurrentProcessorNumber 發生在 IRQL <= APC_LEVEL,則處理器參數可以在指令之間發生。 因此,KeGetCurrentProcessorNumber 的呼叫者通常會在 IRQL >= DISPATCH_LEVEL 執行。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 從 Windows 2000 開始提供。 |
目標平臺 | 桌面 |
標頭 | ntddk.h (包括 Ntddk.h) |
IRQL | 請參閱一節。 |
DDI 合規性規則 | Irql_Miscellaneous_Function(ndis) |