KeSetImportanceDpc, fonction (ntddk.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.
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 | ntddk.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | N’importe quel niveau |