Partager via


KeGetCurrentProcessorNumberEx, fonction (ntddk.h)

La routine KeGetCurrentProcessorNumberEx obtient le numéro de processeur du processeur 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 par 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 de retour

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

Remarques

Si ProcNumber n’est pasNULL, la mémoire tampon pointée par ProcNumber doit être suffisamment grande pour contenir une structure de PROCESSOR_NUMBER. Contrairement à cette structure, qui contient un numéro de groupe et un numéro de processeur relatif à un groupe, la valeur de retour est un index de processeur qui identifie le processeur dans 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 numéros de processeur de chaque groupe sont compris entre 0 et 63, mais les index de processeur à l’échelle du système sont compris entre 0 et 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 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 dans le groupe 0, 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 d’un groupe autre que le groupe 0, cette routine retourne un nombre inférieur au nombre de processeurs dans le 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 toutes les fonctionnalités orientées groupe dans Windows 7 et versions ultérieures du système d’exploitation Windows doivent appeler KeGetCurrentProcessorNumberEx au lieu de KeGetCurrentProcessorNumber.

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows 7 et versions ultérieures de Windows.
plateforme cible Universel
d’en-tête ntddk.h (include Ntddk.h, Wdm.h, Ntddk.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL N’importe quel niveau

Voir aussi

KeGetCurrentProcessorNumber

KeQueryActiveProcessorCount

PROCESSOR_NUMBER