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) |