Partager via


KeSetImportanceDpc, fonction (wdm.h)

La routine KeSetImportanceDpc spécifie la date d’exécution de la routine DPC.

Syntaxe

void KeSetImportanceDpc(
  [in, out] PRKDPC          Dpc,
  [in]      KDPC_IMPORTANCE Importance
);

Paramètres

[in, out] Dpc

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

[in] Importance

Spécifie l’une des valeurs définies par le système suivantes pour déterminer le comportement de KeInsertQueueDpc et IoRequestDpc lorsque l’une ou l’autre des routines est utilisée pour mettre en file d’attente la DPC.

LowImportance

Placez la DPC à la fin de la file d’attente DPC et ne commencez pas le traitement de la file d’attente.

MediumImportance

Placez la DPC à la fin de la file d’attente DPC. Si le DPC est affecté à la file d’attente DPC du processeur actuel, commencez à traiter la file d’attente immédiatement. MediumImportance est la valeur par défaut de Importance.

MediumHighImportance

Placez le DPC à la fin de la file d’attente DPC et commencez à traiter la file d’attente immédiatement. MediumHighImportance est disponible uniquement sur Windows Vista et les versions ultérieures de Windows.

HighImportance

Placez la DPC au début de la file d’attente DPC et commencez à traiter la file d’attente immédiatement.

Valeur de retour

None

Remarques

La routine KeSetImportanceDpc influence la rapidité d’exécution d’un DPC après sa mise en file d’attente en déterminant :

  • Emplacement de la DPC dans la file d’attente DPC. En règle générale, les routines KeInsertQueueDpc et IoRequestDpc placent un DPC à la fin de la file d’attente. Si un pilote appelle d’abord KeSetImportanceDpc avec Importance = HighImportance, KeInsertQueueDpc et IoRequestDpc placent la DPC au début de la file d’attente.
  • Lorsque le système commence à traiter la file d’attente DPC. En règle générale, KeInsertQueueDpc et IoRequestDpc commencent immédiatement à traiter la file d’attente DPC pour le processeur actuel. Les pilotes peuvent spécifier des valeurs différentes pour Importance pour modifier ce comportement.
Par défaut, les contrôleurs de base de données sont affectés à la file d’attente DPC pour le processeur actuel. Par conséquent, la spécification de MediumImportance ou MediumHighImportance pour Importance a le même effet. Toutefois, les pilotes peuvent utiliser KeSetTargetProcessorDpc pour modifier le processeur auquel le DPC sera affecté.

Pour Windows Vista et les versions ultérieures du système d’exploitation Windows, vous pouvez utiliser KeSetImportanceDpc pour les DPC avec threads. Si l’appelant définit Importance sur HighImportance, le DPC est placé au début de la file d’attente ; sinon, il est placé à la fin. La routine n’affecte pas le traitement de la file d’attente DPC threadée. Les DPC threads sont toujours traités par un thread dédié au niveau IRQL = PASSIVE_LEVEL. Pour plus d’informations sur les DPC threads, consultez Présentation des DPC threads.

Notez qu’un pilote doit appeler KeSetImportanceDpc avant d’appeler KeInsertQueueDpc et IoRequestDpc pour avoir un effet.

Pour plus d’informations sur la façon dont le système traite la file d’attente DPC, consultez Organisation des files d’attente DPC.

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

KeInitializeDpc

KeInsertQueueDpc

KeSetTargetProcessorDpc

KeSynchronizeExecution