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