Compartilhar via


EVT_WDF_INTERRUPT_DISABLE função de retorno de chamada (wdfinterrupt.h)

[Aplica-se a KMDF e UMDF]

A função de retorno de chamada de evento EvtInterruptDisable de um driver desabilita uma interrupção de hardware especificada.

Sintaxe

EVT_WDF_INTERRUPT_DISABLE EvtWdfInterruptDisable;

NTSTATUS EvtWdfInterruptDisable(
  [in] WDFINTERRUPT Interrupt,
  [in] WDFDEVICE AssociatedDevice
)
{...}

Parâmetros

[in] Interrupt

Um identificador para um objeto de interrupção de estrutura.

[in] AssociatedDevice

Um identificador para o objeto de dispositivo de estrutura que o driver passou para WdfInterruptCreate.

Retornar valor

A função de retorno de chamada EvtInterruptDisable deve retornar STATUS_SUCCESS ou outro valor status para o qual NT_SUCCESS(status) é igual a TRUE se a função não encontrar erros. Caso contrário, essa função deve retornar um valor status para o qual NT_SUCCESS(status) é igual a FALSE.

Comentários

Para registrar uma função de retorno de chamada EvtInterruptDisable , o driver deve colocar o endereço da função de retorno de chamada em uma estrutura WDF_INTERRUPT_CONFIG antes de chamar WdfInterruptCreate.

A estrutura chama a função de retorno de chamada EvtInterruptDisable do driver sempre que o dispositivo deixa seu estado de trabalho (D0). Além disso, um driver pode fazer com que a estrutura chame a função de retorno de chamada EvtInterruptDisable chamando WdfInterruptDisable. Observe que a maioria dos drivers baseados em estrutura não deve chamar WdfInterruptDisable, porque a estrutura chama a função de retorno de chamada EvtInterruptDisable do driver sempre que o dispositivo deixa seu estado de trabalho (D0).

Antes de chamar a função de retorno de chamada EvtInterruptDisable , a estrutura eleva o IRQL do processador para o DIRQL do dispositivo e adquire o bloqueio de rotação especificado pelo driver na estrutura WDF_INTERRUPT_CONFIG do objeto de interrupção.

A partir da versão 1.11 do KMDF, o driver pode fornecer tratamento de interrupção de nível passivo. Se o driver solicitou tratamento de interrupção de nível passivo, antes de chamar a função EvtInterruptDisable em IRQL = PASSIVE_LEVEL, a estrutura adquire o bloqueio de interrupção de nível passivo que o driver configurou na estrutura WDF_INTERRUPT_CONFIG do objeto de interrupção.

Antes de chamar a função de retorno de chamada EvtInterruptDisable , a estrutura chama a função de retorno de chamada de evento EvtDeviceD0ExitPreInterruptsDisabled do driver em IRQL = PASSIVE_LEVEL.

Para obter mais informações sobre como lidar com interrupções em drivers baseados em estrutura, consulte Tratamento de interrupções de hardware.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho wdfinterrupt.h (inclua Wdf.h)
IRQL (Consulte a seção Observações.)

Confira também

EvtDeviceD0ExitPreInterruptsDisabled

EvtInterruptEnable

WDF_INTERRUPT_CONFIG

WdfInterruptCreate

WdfInterruptDisable