Partager via


KeGetCurrentProcessorNumber, fonction (ntddk.h)

La routine KeGetCurrentProcessorNumber retourne le numéro attribué par le système du processeur actuel sur lequel l’appelant s’exécute.

Syntaxe

ULONG KeGetCurrentProcessorNumber();

Valeur de retour

KeGetCurrentProcessorNumber retourne une valeur ULONG qui représente le processeur sur lequel l’appelant est en cours d’exécution.

Remarques

KeGetCurrentProcessorNumber peut être appelé pour déboguer l’utilisation du verrouillage de rotation sur les machines SMP pendant le développement du pilote. Un pilote peut également appeler KeGetCurrentProcessorNumber s’il conserve certaines données par processeur et tente de réduire la contention de ligne de cache.

Le nombre de processeurs dans une machine SMP est une valeur de base zéro.

Windows 7 et versions ultérieures de Windows prennent en charge les groupes de processeurs. Les pilotes conçus pour gérer des informations sur les groupes de processeurs doivent utiliser la routine KeGetCurrentProcessorNumberEx , qui spécifie un groupe de processeurs, au lieu de KeGetCurrentProcessorNumber, ce qui n’est pas le cas. Toutefois, l’implémentation de KeGetCurrentProcessorNumber dans Windows 7 et les versions ultérieures de Windows fournit la compatibilité pour les pilotes qui ont été écrits pour des versions antérieures de Windows. Dans cette implémentation, KeGetCurrentProcessorNumber retourne le numéro de processeur relatif au groupe si l’appelant s’exécute sur un processeur du groupe 0, ce qui est compatible avec le comportement de cette routine dans les versions antérieures de Windows qui ne prennent pas en charge les groupes de processeurs. Si l’appelant s’exécute sur un processeur dans un groupe autre que le groupe 0, cette routine retourne un nombre inférieur au nombre de processeurs du groupe 0. Ce comportement garantit que la valeur de retour est inférieure à la valeur de retour de la routine KeQueryActiveProcessorCount .

Si l’appel à KeGetCurrentProcessorNumber se produit à l’adresse IRQL <= APC_LEVEL, un commutateur de processeur peut se produire entre les instructions. Par conséquent, les appelants de KeGetCurrentProcessorNumber s’exécutent généralement à IRQL >= DISPATCH_LEVEL.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 2000.
Plateforme cible Desktop (Expérience utilisateur)
En-tête ntddk.h (incluez Ntddk.h)
IRQL Consultez la section Notes.
Règles de conformité DDI Irql_Miscellaneous_Function(ndis)

Voir aussi

KeGetCurrentProcessorNumberEx

KeQueryActiveProcessorCount