Compartir a través de


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)

Consulte también

EvtInterruptDpc

EvtInterruptIsr

WdfInterruptCreate

WdfInterruptQueueDpcForIsr