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 |