EVT_WDF_INTERRUPT_SYNCHRONIZE función de devolución de llamada (wdfinterrupt.h)
[Se aplica a KMDF y UMDF]
El EvtInterruptSynchronize de un controlador función de devolución de llamada de eventos realiza operaciones que deben sincronizarse con una función de devolución de llamada EvtInterruptIsr.
Sintaxis
EVT_WDF_INTERRUPT_SYNCHRONIZE EvtWdfInterruptSynchronize;
BOOLEAN EvtWdfInterruptSynchronize(
[in] WDFINTERRUPT Interrupt,
[in] WDFCONTEXT Context
)
{...}
Parámetros
[in] Interrupt
Identificador de un objeto de interrupción del marco.
[in] Context
Información proporcionada por el controlador que el controlador especifica cuando llama a WdfInterruptSynchronize.
Valor devuelto
El EvtInterruptSynchronize función de devolución de llamada debe devolver TRUE si la operación se realiza correctamente. De lo contrario, esta función debe devolver FALSE.
Observaciones
Para ejecutar una función de devolución de llamada EvtInterruptSynchronize, el controlador debe llamar a WdfInterruptSynchronize.
Si el controlador ha configurado el objeto de interrupción para controlar en el IRQL (DIRQL) del dispositivo, antes de llamar al EvtInterruptSynchronize función de devolución de llamada, el marco genera el nivel de solicitud de interrupción del procesador a DIRQL y adquiere el bloqueo de giro que el controlador especificó en la estructura WDF_INTERRUPT_CONFIG del objeto de interrupción.
Como resultado, mientras se ejecuta una función de devolución de llamada EvtInterruptSynchronize, la función de devolución de llamada del objeto de interrupción EvtInterruptIsr (y cualquier otro código que se ejecute en DIRQL mientras mantiene presionado el bloqueo de número) no se puede ejecutar.
EvtInterruptSynchronize las funciones de devolución de llamada deben diseñarse para que se ejecuten durante un breve período de tiempo. Normalmente se usan para acceder a los datos de interrupción a los que también accede el otro objeto de interrupción EvtInterruptSynchronize o EvtInterruptIsr funciones de devolución de llamada.
A partir de la versión 1.11 de KMDF, el controlador puede proporcionar control de interrupciones de nivel pasivo. Si el controlador ha solicitado el control de interrupciones de nivel pasivo, antes de llamar al EvtInterruptSynchronize función en IRQL = PASSIVE_LEVEL, el marco adquiere el bloqueo de interrupción de nivel pasivo que el controlador configuró en la estructura de WDF_INTERRUPT_CONFIG del objeto de interrupción.
Para obtener más información sobre la función de devolución de llamada EvtInterruptSynchronize, consulte Sincronización del código de interrupción.
Para obtener más información sobre el control de interrupciones en controladores basados en marcos, consulte control de interrupciones de hardware.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Universal |
versión mínima de KMDF | 1.0 |
versión mínima de UMDF | 2.0 |
encabezado | wdfinterrupt.h (incluya Wdf.h) |
irQL | (Consulte la sección Comentarios). |