Función WdfInterruptQueueWorkItemForIsr (wdfinterrupt.h)
[Se aplica a KMDF y UMDF]
El método WdfInterruptQueueWorkItemForIsr pone en cola la función de devolución de llamada EvtInterruptWorkItem de un objeto de interrupción de marco para su ejecución.
Sintaxis
BOOLEAN WdfInterruptQueueWorkItemForIsr(
[in] WDFINTERRUPT Interrupt
);
Parámetros
[in] Interrupt
Identificador de un objeto de interrupción de marco.
Valor devuelto
Si el ISR del controlador se ejecuta en IRQL = PASSIVE_LEVEL, WdfInterruptQueueWorkItemForIsr devuelve TRUE si pone en cola correctamente la función de devolución de llamada EvtInterruptWorkItem del objeto de interrupción. El método devuelve FALSE si la función de devolución de llamada se puso en cola anteriormente y no se ha ejecutado.
Si el ISR del controlador se ejecuta en IRQL = DIRQL, el marco pone primero en cola un DPC interno y, a continuación, pone en cola un elemento de trabajo de ese DPC. En este caso, WdfInterruptQueueWorkItemForIsr devuelve TRUE si el marco pone en cola correctamente el DPC interno. El método devuelve FALSE si el DPC interno se puso en cola anteriormente.
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Comentarios
Los controladores suelen llamar a WdfInterruptQueueWorkItemForIsr desde una función de devolución de llamada EvtInterruptIsr .
La función de devolución de llamada EvtInterruptWorkItem de un objeto de interrupción solo se puede poner en cola una vez antes de que se ejecute. Por lo tanto, si una llamada a WdfInterruptQueueWorkItemForIsr se realiza correctamente, las llamadas posteriores no ponen en cola devoluciones de llamada adicionales.
Para obtener más información sobre el control de interrupciones en controladores basados en marcos, consulte Control de interrupciones de hardware.
Se produce una comprobación de errores si los controladores llaman a WdfInterruptQueueWorkItemForIsr con un objeto de interrupción que no especifica una función de devolución de llamada EvtInterruptWorkItem .
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.11 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfinterrupt.h (incluya Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DIRQL |
Reglas de cumplimiento de DDI | DriverCreate(kmdf) |