Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
[Se aplica a KMDF y UMDF]
La función de devolución de llamada de eventos EvtInterruptWorkIte m de un controlador procesa la información de interrupción que ha almacenado la función de devolución de llamada del controlador EvtInterruptIsr función de devolución de llamada.
Sintaxis
EVT_WDF_INTERRUPT_WORKITEM EvtWdfInterruptWorkitem;
VOID EvtWdfInterruptWorkitem(
[in] WDFINTERRUPT Interrupt,
[in] WDFOBJECT AssociatedObject
)
{...}
Parámetros
[in] Interrupt
Identificador de un objeto de interrupción del marco.
[in] AssociatedObject
Identificador del objeto de dispositivo de marco que el controlador pasó a WdfInterruptCreate.
Valor devuelto
Ninguno
Observaciones
La función de devolución de llamada EvtInterruptWorkItem se ejecuta en IRQL = PASSIVE_LEVEL.
Para registrar una función de devolución de llamada EvtInterruptWorkItem, el controlador debe colocar la dirección de la función de devolución de llamada en una estructura de WDF_INTERRUPT_CONFIG antes de llamar a WdfInterruptCreate.
La mayoría de los controladores usan una sola función de devolución de llamada EvtInterruptWorkItem para cada tipo de interrupción.
Para programar la ejecución de una función de devolución de llamada EvtInterruptWorkItem, el controlador debe llamar a función de devolución de llamada WdfInterruptQueueWorkItemForIs r desde el EvtInterruptIsr función de devolución de llamada.
Si el controlador crea varios objetos de interrupción del marco para cada dispositivo, puede considerar la posibilidad de usar un EvtInterruptWorkItem independiente devolución de llamada para cada interrupción.
Los controladores que implementan el control de interrupciones de DIRQL o el control de interrupciones de nivel pasivo pueden poner en cola un EvtInterruptWorkItem devolución de llamada.
Un controlador no puede poner en cola una EvtInterruptDpc y una devolución de llamada EvtInterruptWorkItem.
Si el controlador ha establecido el miembro AutomaticSerialization en TRUE en la estructura WDF_INTERRUPT_CONFIG de la interrupción, el marco sincroniza la ejecución del objeto de interrupción EvtInterruptWorkItem función de devolución de llamada con funciones de devolución de llamada de otros objetos que están debajo del objeto primario de la interrupción. Para obtener información sobre los bloqueos de sincronización de devolución de llamada, consulte Using Framework Locks.
En general, si el controlador necesita adquirir el bloqueo pasivo del objeto de interrupción desde EvtInterruptWorkItem, el controlador debe establecer el miembro AutomaticSerialization de WDF_INTERRUPT_CONFIG en FALSE y, a continuación, llamar a WdfInterruptAcquireLock desde EvtInterruptWorkItem.
Si AutomaticSerialization se establece en TRUE, el EvtInterruptWorkItem de un controlador función de devolución de llamada no debe llamar a ninguno de los métodos siguientes:
WdfInterruptAcquireLockWdfInterruptSynchronizeWdfInterruptDisableWdfInterruptEnable Para obtener más información sobre cómo controlar interrupciones en controladores basados en marcos, vea control de interrupciones de hardware.
Requisitos
| Requisito | Valor |
|---|---|
| de la plataforma de destino de | Universal |
| versión mínima de KMDF | 1.11 |
| versión mínima de UMDF | 2.0 |
| encabezado | wdfinterrupt.h (incluya Wdf.h) |
| irQL | PASSIVE_LEVEL |