Partager via


Fonction KeGetCurrentProcessorNumberEx (ntddk.h)

La routine KeGetCurrentProcessorNumberEx obtient le numéro de processeur du processeur logique sur lequel l’appelant s’exécute.

Syntaxe

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

Paramètres

[out, optional] ProcNumber

Pointeur vers une mémoire tampon allouée à l’appelant dans laquelle la routine écrit une structure PROCESSOR_NUMBER qui identifie le processeur logique actuel. Cette structure contient le numéro de groupe et le numéro de processeur relatif au groupe. Vous pouvez définir ce paramètre sur NULL si vous n’avez pas besoin de ces informations.

Valeur retournée

KeGetCurrentProcessorNumberEx retourne l’index de processeur à l’échelle du système du processeur logique sur lequel l’appelant s’exécute.

Remarques

Si ProcNumber n’a pas la valeur NULL, la mémoire tampon pointée par ProcNumber doit être suffisamment grande pour contenir une structure PROCESSOR_NUMBER. Contrairement à cette structure, qui contient un numéro de groupe et un numéro de processeur relatif au groupe, la valeur de retour est un index de processeur qui identifie le processeur sur l’ensemble du système multiprocesseur.

Par exemple, si un système multiprocesseur contient deux groupes et que chaque groupe contient 64 processeurs logiques, les nombres de processeurs de chaque groupe vont de 0 à 63, mais les index de processeur à l’échelle du système varient de 0 à 127.

Une routine associée, KeGetCurrentProcessorNumber, retourne le numéro de processeur actuel, mais cette routine, contrairement à KeGetCurrentProcessorNumberEx, ne fournit pas de numéro de groupe pour le processeur. Dans Windows 7 et les versions ultérieures du système d’exploitation Windows, 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. Toutefois, 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 . Les pilotes existants qui appellent KeGetCurrentProcessorNumber et qui n’utilisent aucune fonctionnalité orientée groupe s’exécutent correctement dans les systèmes multiprocesseurs qui ont deux groupes ou plus. Toutefois, les pilotes qui utilisent des fonctionnalités orientées groupe dans Windows 7 et les versions ultérieures du système d’exploitation Windows doivent appeler KeGetCurrentProcessorNumberEx au lieu de KeGetCurrentProcessorNumber.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows 7 et versions ultérieures de Windows.
Plateforme cible Universal
En-tête ntddk.h (inclure Ntddk.h, Wdm.h, Ntddk.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL N’importe quel niveau

Voir aussi

KeGetCurrentProcessorNumber

KeQueryActiveProcessorCount

PROCESSOR_NUMBER