KeQueryActiveProcessorCountEx 函数 (ntddk.h)
KeQueryActiveProcessorCountEx 例程返回多处理器系统或整个系统中指定组中的活动逻辑处理器数。
语法
ULONG KeQueryActiveProcessorCountEx(
[in] USHORT GroupNumber
);
参数
[in] GroupNumber
组编号。 如果多处理器系统包含 n 个组,则有效的组编号范围为 0 到 n-1。 若要计算系统中所有组中的所有活动处理器数,请将此参数设置为 ALL_PROCESSOR_GROUPS,该参数在头文件 Winnt.h 和 Ntdef.h 中定义。
返回值
KeQueryActiveProcessorCountEx 返回组中活动逻辑处理器的数目。 如果 GroupNumber 不是有效的组号且未ALL_PROCESSOR_GROUPS,则返回零。
注解
活动逻辑处理器是 Windows 已启动并添加到多处理器系统的逻辑处理器。 术语“活动处理器”适用于可用于执行处理工作的处理器,无论处理器当前是正在执行处理工作还是处于空闲状态。 在某些系统中,从系统启动到关闭,活动处理器的数量可能保持不变。 在其他系统中,Windows 可能会在系统运行时动态添加活动处理器。 Windows 从不从系统中删除活动处理器。 因此,在系统启动和关闭之间,多处理器系统中的活动处理器数可能会增加,但此数字永远不会减少。
相关例程 KeQueryActiveProcessorCount 返回活动处理器计数,但此例程与 KeQueryActiveProcessorCountEx 不同,不接受组号作为输入参数。 在 Windows 7 及更高版本的 Windows 操作系统中, KeQueryActiveProcessorCount 返回组 0 中的活动处理器计数,这与不支持组的早期版本的 Windows 中此例程的行为兼容。 此行为可确保调用 KeQueryActiveProcessorCount 且不使用面向组的功能的现有驱动程序将在具有两个或更多组的多处理器系统中正确运行。 但是,在 Windows 7 及更高版本的 Windows 操作系统中使用任何面向组的功能的驱动程序应调用 KeQueryActiveProcessorCountEx ,而不是 KeQueryActiveProcessorCount。
有关使用 KeQueryActiveProcessorCountEx 的代码示例,请参阅 KeGetProcessorNumberFromIndex。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows 7 和更高版本的 Windows 中可用。 |
目标平台 | 通用 |
标头 | ntddk.h (包括 Ntddk.h、Wdm.h、Ntddk.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何级别 |