Partager via


KeQueryActiveProcessorCount, fonction (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 KAFFINITY -typée 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 ne nécessite pas le masque des processeurs actifs.

Valeur de retour

KeQueryActiveProcessorCount retourne le nombre de processeurs actuellement actifs.

Remarques

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

Les appelants ne peuvent pas supposer que les processeurs KeQueryActiveProcessorCount mappent les processeurs aux bits dans le KAFFINITY retourné valeur 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 à 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 groupes de processeurs de prise en charge de Windows. 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 ne le fait pas. Toutefois, l’implémentation de KeQueryActiveProcessorCount dans Windows 7 et versions ultérieures de Windows fournit la compatibilité pour les pilotes é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.

Exigences

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

Voir aussi

KeQueryActiveProcessorCountEx

KeQueryActiveProcessors

KeRegisterProcessorChangeCallback