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 |