Función KeGetCurrentProcessorNumberEx (ntddk.h)

La rutina KeGetCurrentProcessorNumberEx obtiene el número de procesador del procesador lógico en el que se ejecuta el autor de la llamada.

Sintaxis

ULONG KeGetCurrentProcessorNumberEx(
  [out, optional] PPROCESSOR_NUMBER ProcNumber
);

Parámetros

[out, optional] ProcNumber

Puntero a un búfer asignado por el autor de la llamada en el que la rutina escribe una estructura de PROCESSOR_NUMBER que identifica el procesador lógico actual. Esta estructura contiene el número de grupo y el número de procesador relativo al grupo. Puede establecer este parámetro en NULL si no necesita esta información.

Valor devuelto

KeGetCurrentProcessorNumberEx devuelve el índice de procesador en todo el sistema del procesador lógico en el que se ejecuta el autor de la llamada.

Comentarios

Si ProcNumber no es NULL, el búfer al que apunta ProcNumber debe ser lo suficientemente grande como para contener una estructura de PROCESSOR_NUMBER. A diferencia de esta estructura, que contiene un número de grupo y un número de procesador relativo al grupo, el valor devuelto es un índice de procesador que identifica el procesador en todo el sistema multiprocesador.

Por ejemplo, si un sistema multiprocesador contiene dos grupos y cada grupo contiene 64 procesadores lógicos, los números de procesador de cada grupo van de 0 a 63, pero los índices de procesador de todo el sistema van de 0 a 127.

Una rutina relacionada, KeGetCurrentProcessorNumber, devuelve el número de procesador actual, pero esta rutina, a diferencia de KeGetCurrentProcessorNumberEx, no proporciona un número de grupo para el procesador. En Windows 7 y versiones posteriores del sistema operativo Windows, KeGetCurrentProcessorNumber devuelve el número de procesador relativo al grupo si el autor de la llamada se ejecuta en un procesador del grupo 0, que es compatible con el comportamiento de esta rutina en versiones anteriores de Windows que no admiten grupos. Sin embargo, si el autor de la llamada se ejecuta en un procesador de cualquier grupo distinto del grupo 0, esta rutina devuelve un número menor que el número de procesadores del grupo 0. Este comportamiento garantiza que el valor devuelto sea menor que el valor devuelto de la rutina KeQueryActiveProcessorCount . Los controladores existentes que llaman a KeGetCurrentProcessorNumber y que no usan características orientadas a grupos se ejecutan correctamente en sistemas multiprocesador que tienen dos o más grupos. Sin embargo, los controladores que usan las características orientadas a grupos en Windows 7 y versiones posteriores del sistema operativo Windows deben llamar a KeGetCurrentProcessorNumberEx en lugar de KeGetCurrentProcessorNumber.

Requisitos

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

Consulte también

KeGetCurrentProcessorNumber

KeQueryActiveProcessorCount

PROCESSOR_NUMBER