Partager via


KeSetTargetProcessorDpc, fonction (wdm.h)

La routine KeSetTargetProcessorDpc spécifie le processeur sur lequel une routine DPC sera exécutée.

Syntaxe

void KeSetTargetProcessorDpc(
  [in, out] PRKDPC Dpc,
  [in]      CCHAR  Number
);

Paramètres

[in, out] Dpc

Pointeur vers l’objet DPC de l’appelant, que KeInitializeDpc a déjà initialisé.

[in] Number

Spécifie le nombre de base zéro du processeur cible sur lequel la DPC doit être mise en file d’attente et exécutée.

Valeur de retour

None

Remarques

Sur les systèmes multiprocesseurs, chaque processeur a sa propre file d’attente DPC. La routine KeSetTargetProcessorDpc spécifie la file d’attente du processeur que le système doit utiliser lorsque le pilote appelle KeInsertQueueDpc ou IoRequestDpc pour mettre en file d’attente un DPC à exécuter ultérieurement.

À compter de Windows Vista, vous pouvez également utiliser KeSetTargetProcessorDpc pour spécifier le processeur cible pour les contrôleurs de domaine avec threads.

Un appel à KeSetTargetProcessorDpcEx qui se produit après la mise en file d’attente d’un objet DPC n’a aucun effet sur la sélection d’un processeur pour la routine DPC sur laquelle s’exécuter. Pour contrôler la sélection du processeur cible, un appel KeSetTargetProcessorDpc doit se produire avant l’appel à KeInsertQueueDpc ou IoRequestDpc qui met en file d’attente l’objet DPC.

Pour plus d’informations sur les files d’attente DPC, consultez Organisation des files d’attente DPC.

Windows 7 et versions ultérieures de Windows prennent en charge les groupes de processeurs. Les pilotes conçus pour gérer les informations sur les groupes de processeurs doivent utiliser la routine KeSetTargetProcessorDpcEx , qui spécifie un groupe de processeurs, au lieu de KeSetTargetProcessorDpc, ce qui n’est pas le cas. Toutefois, l’implémentation de KeSetTargetProcessorDpc dans Windows 7 et les versions ultérieures de Windows fournit la compatibilité pour les pilotes qui ont été écrits pour des versions antérieures de Windows, qui ne prennent pas en charge les groupes de processeurs. Dans cette implémentation, si Nombre est inférieur au nombre de processeurs logiques actifs dans le groupe 0, KeSetTargetProcessorDpc définit la cible pour la DPC sur le processeur du groupe 0 spécifié par Number. Sinon, la cible DPC ne change pas.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 2000.
Plateforme cible Universal
En-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL N’importe quel niveau

Voir aussi

IoRequestDpc

KeGetCurrentProcessorNumber

KeInitializeDpc

KeInsertQueueDpc

KeSetImportanceDpc

KeSetTargetProcessorDpcEx