다음을 통해 공유


IoDisconnectInterrupt 함수(wdm.h)

IoDisconnectInterrupt 루틴은 디바이스가 일시 중지 또는 제거되거나 드라이버가 언로드될 때 디바이스 드라이버의 인터럽트 개체 집합을 해제합니다.

구문

void IoDisconnectInterrupt(
  [in] PKINTERRUPT InterruptObject
);

매개 변수

[in] InterruptObject

KINTERRUPT 구조체에 대한 포인터입니다. 호출자는 이전에 인터럽트 또는 인터럽트를 연결한 IoConnectInterrupt 호출에서 이 포인터를 얻었습니다.

반환 값

없음

설명

드라이버는 이러한 인터럽트는 연결된 경우에만 인터럽트 발급을 위해 디바이스를 구성해야 합니다. 인터럽트 연결이 끊어질 때 디바이스가 인터럽트 발급을 방지하지 못하면 시스템 불안정이 발생할 수 있습니다. 예를 들어 디바이스가 수준 트리거 인터럽트 라인을 다른 디바이스와 공유하고 디바이스의 인터럽트 연결이 끊어질 때 디바이스가 인터럽트 요청을 발급하는 경우 줄의 다른 디바이스는 인터럽트를 승인하지 않으며 인터럽트는 계속 발생합니다. IoDisconnectInterrupt를 호출하기 전에 드라이버는 인터럽트 발급을 중지하도록 디바이스를 구성해야 합니다. IoConnectInterrupt를 호출한 후 드라이버는 인터럽트 발급을 시작하도록 디바이스를 구성해야 합니다.

드라이버가 디바이스 개체의 디바이스 확장 또는 컨트롤러 개체의 컨트롤러 확장에 인터럽트 개체에 대한 포인터를 저장한 경우 IoDeleteDevice 또는 IoDeleteController를 호출하기 전에 IoDisconnectInterrupt를 호출해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), IrqlIoPassive4(wdm), PowerIrpDDis(wdm)

추가 정보

IoConnectInterrupt

IoDeleteController

IoDeleteDevice

KINTERRUPT