KeQueryActiveProcessorCount 函数 (ntddk.h)
KeQueryActiveProcessorCount 例程返回当前活动处理器的数目。
语法
ULONG KeQueryActiveProcessorCount(
[out, optional] PKAFFINITY ActiveProcessors
);
参数
[out, optional] ActiveProcessors
指向 KAFFINITY类型变量的指针,例程将位掩码写入一个表示当前活动处理器集的位掩码。 在热添加环境中,此掩码可能会在运行时更改。 此参数是可选的,如果调用方不需要活动处理器的掩码,则可以指定为 NULL。
返回值
KeQueryActiveProcessorCount 返回当前活动处理器的数目。
言论
设备驱动程序调用 KeQueryActiveProcessorCount 例程来检索当前活动处理器的数量。 为 Windows Vista 和更高版本的 Windows作系统生成的设备驱动程序不应将 KeNumberProcessors 内核变量用于此目的。
调用方不能假定 KeQueryActiveProcessorCount 例程将处理器映射到返回的 KAFFINITY 值中的位,或者每次调用该例程时都将返回相同的位掩码。
调用方还必须注意,KeQueryActiveProcessorCount 返回的值 可以在运行时更改支持热添加 CPU 功能的 Windows 版本。
如有必要,请通过调用 KeRegisterProcessorChangeCallback 例程来注册对处理器数的更改通知。
若要仅查询关联掩码而不获取活动处理器的数量,请使用 KeQueryActiveProcessors。
Windows 7 及更高版本的 Windows 支持处理器组。 旨在处理有关处理器组信息的驱动程序应使用 KeQueryActiveProcessorCountEx 例程,该例程指定处理器组,而不是 KeQueryActiveProcessorCount,而不是不这样做。 但是,在 Windows 7 及更高版本中实现 KeQueryActiveProcessorCount 为早期版本的 Windows(不支持处理器组)编写的驱动程序提供兼容性。 在此实现中,KeQueryActiveProcessorCount 返回组 0 中的活动逻辑处理器数,并将关联掩码写入 *ActiveProcessors,该掩码指定组 0 中的活动逻辑处理器集。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Windows Vista 和更高版本的 Windows 中可用。 |
目标平台 | 普遍 |
标头 | ntddk.h (包括 Wdm.h、Ntddk.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何级别 |