KeGetCurrentProcessorNumber 函数 (ntddk.h)

KeGetCurrentProcessorNumber 例程返回系统分配的调用方正在运行的当前处理器的编号。

语法

ULONG KeGetCurrentProcessorNumber();

返回值

KeGetCurrentProcessorNumber 返回一个 ULONG 值,该值表示调用方当前正在运行的处理器。

注解

在驱动程序开发期间,可以调用 KeGetCurrentProcessorNumber 来调试 SMP 计算机上的旋转锁使用情况。 如果驱动程序维护了一些按处理器的数据并尝试减少缓存行争用,则驱动程序也可能调用 KeGetCurrentProcessorNumber

SMP 计算机中的处理器数是从零开始的值。

Windows 7 及更高版本的 Windows 支持处理器组。 旨在处理处理器组相关信息的驱动程序应使用 KeGetCurrentProcessorNumberEx 例程(指定处理器组),而不是 KeGetCurrentProcessorNumber,后者不指定。 但是,Windows 7 和更高版本中 KeGetCurrentProcessorNumber 的实现为早期版本的 Windows 编写的驱动程序提供了兼容性。 在此实现中,如果调用方在组 0 中的处理器上运行, KeGetCurrentProcessorNumber 将返回相对于组的处理器编号,这与不支持处理器组的早期 Windows 版本中此例程的行为兼容。 如果调用方在组 0 以外的任何组中的处理器上运行,则此例程将返回一个小于组 0 中的处理器数的数字。 此行为可确保返回值小于 KeQueryActiveProcessorCount 例程的返回值。

如果在 IRQL <= APC_LEVEL 处调用 KeGetCurrentProcessorNumber,则处理器开关可以在指令之间发生。 因此, KeGetCurrentProcessorNumber 的调用方通常以 IRQL >= DISPATCH_LEVEL 运行。

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 桌面
标头 ntddk.h (包括 Ntddk.h)
IRQL 请参见“备注”部分。
DDI 符合性规则 Irql_Miscellaneous_Function (ndis)

另请参阅

KeGetCurrentProcessorNumberEx

KeQueryActiveProcessorCount