Compartir a través de


Función KeGetCurrentProcessorNumber (ntddk.h)

La rutina KeGetCurrentProcessorNumber devuelve el número asignado por el sistema del procesador actual en el que se ejecuta el autor de la llamada.

Sintaxis

ULONG KeGetCurrentProcessorNumber();

Valor devuelto

KeGetCurrentProcessorNumber devuelve un valor de ULONG que representa el procesador en el que se está ejecutando el autor de la llamada.

Comentarios

Se puede llamar a KeGetCurrentProcessorNumber para depurar el uso del bloqueo de número en máquinas SMP durante el desarrollo de controladores. Un controlador también podría llamar a KeGetCurrentProcessorNumber si mantuvo algunos datos por procesador e intentó reducir la contención de la línea de caché.

El número de procesadores de una máquina SMP es un valor de base cero.

Windows 7 y versiones posteriores de los grupos de procesadores de soporte técnico de Windows. Los controladores diseñados para controlar la información sobre los grupos de procesadores deben usar la rutina KeGetCurrentProcessorNumberEx , que especifica un grupo de procesadores, en lugar de KeGetCurrentProcessorNumber, que no lo hace. Sin embargo, la implementación de KeGetCurrentProcessorNumber en Windows 7 y versiones posteriores de Windows proporciona compatibilidad con los controladores escritos para versiones anteriores de Windows. En esta implementación, 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 de procesadores. 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 .

Si la llamada a KeGetCurrentProcessorNumber se produce en IRQL <= APC_LEVEL, puede producirse un cambio de procesador entre instrucciones. Por lo tanto, los autores de llamadas de KeGetCurrentProcessorNumber normalmente se ejecutan en IRQL >= DISPATCH_LEVEL.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Escritorio
Encabezado ntddk.h (incluya Ntddk.h)
IRQL vea la sección Comentarios.
Reglas de cumplimiento de DDI Irql_Miscellaneous_Function(ndis)

Consulte también

KeGetCurrentProcessorNumberEx

KeQueryActiveProcessorCount