EVT_WDF_INTERRUPT_DISABLE función de devolución de llamada (wdfinterrupt.h)
[Se aplica a KMDF y UMDF]
La función de devolución de llamada de evento EvtInterruptDisable de un controlador deshabilita una interrupción de hardware especificada.
Sintaxis
EVT_WDF_INTERRUPT_DISABLE EvtWdfInterruptDisable;
NTSTATUS EvtWdfInterruptDisable(
[in] WDFINTERRUPT Interrupt,
[in] WDFDEVICE AssociatedDevice
)
{...}
Parámetros
[in] Interrupt
Identificador de un objeto de interrupción de marco.
[in] AssociatedDevice
Identificador del objeto de dispositivo de marco que el controlador pasó a WdfInterruptCreate.
Valor devuelto
La función de devolución de llamada EvtInterruptDisable debe devolver STATUS_SUCCESS u otro valor de estado para el que NT_SUCCESS(status) es igual a TRUE si la función no encuentra ningún error. De lo contrario, esta función debe devolver un valor de estado para el que NT_SUCCESS(status) es igual a FALSE.
Comentarios
Para registrar una función de devolución de llamada EvtInterruptDisable , 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.
El marco llama a la función de devolución de llamada EvtInterruptDisable del controlador cada vez que el dispositivo deja su estado de trabajo (D0). Además, un controlador puede hacer que el marco llame a la función de devolución de llamada EvtInterruptDisable llamando a WdfInterruptDisable. Tenga en cuenta que la mayoría de los controladores basados en marcos no deben llamar a WdfInterruptDisable, ya que el marco llama a la función de devolución de llamada EvtInterruptDisable del controlador cada vez que el dispositivo deja su estado de funcionamiento (D0).
Antes de llamar a la función de devolución de llamada EvtInterruptDisable , el marco genera el IRQL del procesador en el DIRQL del dispositivo y adquiere el bloqueo de número que el controlador especificó en la estructura de WDF_INTERRUPT_CONFIG del objeto de interrupción.
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 a la función EvtInterruptDisable 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.
Antes de llamar a la función de devolución de llamada EvtInterruptDisable , el marco llama a la función de devolución de llamada de eventos EvtDeviceD0ExitPreInterruptsDisabled en IRQL = PASSIVE_LEVEL.
Para obtener más información sobre el control de interrupciones en controladores basados en marcos, consulte Control de interrupciones de hardware.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfinterrupt.h (incluir Wdf.h) |
IRQL | (Vea la sección Comentarios.) |