Partager via


Fonction KeQueryActiveProcessorCount (wdm.h)

La routine KeQueryActiveProcessorCount retourne le nombre de processeurs actuellement actifs.

Syntaxe

ULONG KeQueryActiveProcessorCount(
  [out, optional] PKAFFINITY ActiveProcessors
);

Paramètres

[out, optional] ActiveProcessors

Pointeur vers une variable de type KAFFINITY dans laquelle la routine écrit un masque de bits qui représente l’ensemble des processeurs actuellement actifs. Dans un environnement d’ajout à chaud, ce masque peut changer pendant l’exécution. Ce paramètre est facultatif et peut être spécifié comme NULL si l’appelant n’a pas besoin du masque des processeurs actifs.

Valeur retournée

KeQueryActiveProcessorCount retourne le nombre de processeurs actuellement actifs.

Remarques

Un pilote d’appareil appelle la routine KeQueryActiveProcessorCount pour récupérer le nombre de processeurs actuellement actifs. Les pilotes de périphérique créés pour Windows Vista et les versions ultérieures du système d’exploitation Windows ne doivent pas utiliser la variable du noyau KeNumberProcessors à cet effet.

Les appelants ne peuvent pas supposer que la routine KeQueryActiveProcessorCount mappe les processeurs aux bits de la valeur KAFFINITY retournée consécutivement, ou que la routine retourne le même masque de bits chaque fois qu’elle est appelée.

Les appelants doivent également savoir que la valeur retournée par KeQueryActiveProcessorCount peut changer au moment de l’exécution sur les versions de Windows qui prennent en charge les fonctionnalités d’ajout à chaud du processeur.

Si nécessaire, inscrivez-vous pour la notification des modifications apportées au nombre de processeurs en appelant la routine KeRegisterProcessorChangeCallback .

Pour interroger uniquement le masque d’affinité sans obtenir le nombre de processeurs actifs, utilisez KeQueryActiveProcessors.

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 KeQueryActiveProcessorCountEx , qui spécifie un groupe de processeurs, au lieu de KeQueryActiveProcessorCount, ce qui n’est pas le cas. Toutefois, l’implémentation de KeQueryActiveProcessorCount dans Windows 7 et les versions ultérieures de Windows fournit la compatibilité pour les pilotes qui ont été écrits pour les versions antérieures de Windows, qui ne prennent pas en charge les groupes de processeurs. Dans cette implémentation, KeQueryActiveProcessorCount retourne le nombre de processeurs logiques actifs dans le groupe 0 et écrit un masque d’affinité dans *ActiveProcessors qui spécifie l’ensemble de processeurs logiques actifs dans le groupe 0.

Configuration requise

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

Voir aussi

KeQueryActiveProcessorCountEx

KeQueryActiveProcessors

KeRegisterProcessorChangeCallback