Partilhar 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 do 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 do dispositivo de estrutura que o driver passou para WdfInterruptCreate.

Valor de retorno

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

Observações

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 de 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, pois a estrutura chama a função de retorno de chamada EvtInterruptDis able do driver cada vez 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 de 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 no IRQL = PASSIVE_LEVEL, a estrutura adquirirá o bloqueio de interrupção de nível passivo configurado pelo driver na estrutura WDF_INTERRUPT_CONFIG do objeto de interrupção.

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

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

Requisitos

Requisito Valor
da 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 Comentários.)

Consulte também

EvtDeviceD0ExitPreInterruptsDisabled

EvtInterruptEnable

WDF_INTERRUPT_CONFIG

WdfInterruptCreate

WdfInterruptDisable