Llegeix en anglès

Comparteix a través de


Función KeGetCurrentProcessorNumberEx (wdm.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

C++
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.

Observaciones

Si ProcNumber no esNULL, 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 de varios procesadores 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 Valor
cliente mínimo admitido Disponible en Windows 7 y versiones posteriores de Windows.
de la plataforma de destino de Universal
encabezado de wdm.h (include Ntddk.h, Wdm.h, Ntddk.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL Cualquier nivel

Consulte también

KeGetCurrentProcessorNumber

keQueryActiveProcessorCount

PROCESSOR_NUMBER