Partager via


WdfInterruptQueueWorkItemForIsr, fonction (wdfinterrupt.h)

[S’applique à KMDF et UMDF]

La méthode WdfInterruptQueueWorkItemForIsr met en file d’attente la fonction de rappel EvtInterruptWorkItem d’un objet d’interruption de framework pour l’exécution.

Syntaxe

BOOLEAN WdfInterruptQueueWorkItemForIsr(
  [in] WDFINTERRUPT Interrupt
);

Paramètres

[in] Interrupt

Handle pour un objet d’interruption de framework.

Valeur retournée

Si l’ISR du pilote s’exécute à IRQL = PASSIVE_LEVEL, WdfInterruptQueueWorkItemForIsr retourne TRUE s’il met correctement en file d’attente la fonction de rappel EvtInterruptWorkItem de l’objet d’interruption. La méthode retourne FALSE si la fonction de rappel a été précédemment mise en file d’attente et n’a pas été exécutée.

Si l’ISR du pilote s’exécute sur IRQL = DIRQL, l’infrastructure met d’abord en file d’attente un DPC interne, puis met en file d’attente un élément de travail à partir de ce DPC. Dans ce cas, WdfInterruptQueueWorkItemForIsr retourne TRUE si l’infrastructure met correctement en file d’attente le DPC interne. La méthode retourne FALSE si le DPC interne a été précédemment mis en file d’attente.

Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.

Remarques

Les pilotes appellent généralement WdfInterruptQueueWorkItemForIsr à partir d’une fonction de rappel EvtInterruptIsr .

La fonction de rappel EvtInterruptWorkItem d’un objet d’interruption ne peut être mise en file d’attente qu’une seule fois avant son exécution. Par conséquent, si un appel à WdfInterruptQueueWorkItemForIsr réussit, les appels suivants ne devront pas mettre en file d’attente les rappels supplémentaires.

Pour plus d’informations sur la gestion des interruptions dans les pilotes basés sur l’infrastructure, consultez Gestion des interruptions matérielles.

Un bogue case activée se produit si des pilotes appellent WdfInterruptQueueWorkItemForIsr avec un objet d’interruption qui ne spécifie pas de fonction de rappel EvtInterruptWorkItem.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.11
Version UMDF minimale 2.0
En-tête wdfinterrupt.h (inclure Wdf.h)
Bibliothèque Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF)
IRQL <=DIRQL
Règles de conformité DDI DriverCreate(kmdf)

Voir aussi

EvtInterruptDpc

EvtInterruptIsr

WdfInterruptCreate

WdfInterruptQueueDpcForIsr