Compartilhar via


Função IoDisconnectInterrupt (wdm.h)

A rotina IoDisconnectInterrupt libera o conjunto de objetos de interrupção de um driver de dispositivo quando o dispositivo é pausado ou removido ou quando o driver está sendo descarregado.

Sintaxe

void IoDisconnectInterrupt(
  [in] PKINTERRUPT InterruptObject
);

Parâmetros

[in] InterruptObject

Um ponteiro para uma estrutura KINTERRUPT. O chamador obteve esse ponteiro da chamada IoConnectInterrupt que conectou anteriormente a interrupção ou interrupções.

Valor de retorno

Nenhum

Observações

O driver deve configurar o dispositivo para emitir interrupções somente quando essas interrupções estiverem conectadas. Falha ao impedir que um dispositivo emitisse interrupções quando as interrupções são desconectadas pode causar instabilidade no sistema. Por exemplo, se um dispositivo compartilhar uma linha de interrupção disparada em nível com outros dispositivos e o dispositivo emitir uma solicitação de interrupção quando as interrupções do dispositivo forem desconectadas, os outros dispositivos na linha não reconhecerão a interrupção e a interrupção continuará sendo disparada. Antes de chamar IoDisconnectInterrupt, o driver deve configurar o dispositivo para interromper a emissão de interrupções. Depois de chamar IoConnectInterrupt, o driver deve configurar o dispositivo para iniciar a emissão de interrupções.

Se o driver tiver armazenado o ponteiro para seus objetos de interrupção na extensão do dispositivo de seu objeto de dispositivo ou na extensão do controlador de seu objeto controlador, ele deverá chamar IoDisconnectInterrupt antes de chamar IoDeleteDevice ou IoDeleteController.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível a partir do Windows 2000.
da Plataforma de Destino Universal
cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
regras de conformidade de DDI HwStorPortProhibitedDIs(storport), IrqlIoPassive4(wdm), PowerIrpDDis(wdm)

Consulte também

IoConnectInterrupt

IoDeleteController

IoDeleteDevice

KINTERRUPT