Función KeQueryActiveProcessorCount (ntddk.h)

La rutina KeQueryActiveProcessorCount devuelve el número de procesadores activos actualmente.

Sintaxis

ULONG KeQueryActiveProcessorCount(
  [out, optional] PKAFFINITY ActiveProcessors
);

Parámetros

[out, optional] ActiveProcessors

Puntero a una variable con tipo KAFFINITY en la que la rutina escribe una máscara de bits que representa el conjunto de procesadores activos actualmente. En un entorno de adición activa, esta máscara puede cambiar durante el tiempo de ejecución. Este parámetro es opcional y se puede especificar como NULL si el autor de la llamada no requiere la máscara de procesadores activos.

Valor devuelto

KeQueryActiveProcessorCount devuelve el número de procesadores activos actualmente.

Comentarios

Un controlador de dispositivo llama a la rutina KeQueryActiveProcessorCount para recuperar el número de procesadores activos actualmente. Los controladores de dispositivo creados para Windows Vista y versiones posteriores del sistema operativo Windows no deben usar la variable de kernel KeNumberProcessors para este fin.

Los autores de llamadas no pueden suponer que la rutina KeQueryActiveProcessorCount asigna procesadores a bits en el valor KAFFINITY devuelto de forma consecutiva, o que la rutina devolverá la misma máscara de bits cada vez que se llama.

Los autores de llamadas también deben tener en cuenta que el valor devuelto por KeQueryActiveProcessorCount puede cambiar en tiempo de ejecución en versiones de Windows que admiten la funcionalidad de CPU de adición activa.

Si es necesario, regístrese para recibir notificaciones de cambios en el número de procesadores mediante una llamada a la rutina KeRegisterProcessorChangeCallback .

Para consultar solo la máscara de afinidad sin obtener el número de procesadores activos, use KeQueryActiveProcessors.

Windows 7 y versiones posteriores de windows admiten grupos de procesadores. Los controladores diseñados para controlar la información sobre los grupos de procesadores deben usar la rutina KeQueryActiveProcessorCountEx , que especifica un grupo de procesadores, en lugar de KeQueryActiveProcessorCount, que no lo hace. Sin embargo, la implementación de KeQueryActiveProcessorCount en Windows 7 y versiones posteriores de Windows proporciona compatibilidad con controladores escritos para versiones anteriores de Windows, que no admiten grupos de procesadores. En esta implementación, KeQueryActiveProcessorCount devuelve el número de procesadores lógicos activos en el grupo 0 y escribe una máscara de afinidad en *ActiveProcessors que especifica el conjunto de procesadores lógicos activos del grupo 0.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de Windows.
Plataforma de destino Universal
Encabezado ntddk.h (incluya Wdm.h, Ntddk.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL Cualquier nivel

Consulte también

KeQueryActiveProcessorCountEx

KeQueryActiveProcessors

KeRegisterProcessorChangeCallback