다음을 통해 공유


인터럽트 사용 및 사용 안 함(UMDF 1)

경고

UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에 새 기능이 추가되지 않으며 최신 버전의 Windows 10 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다.

보관된 UMDF 1 샘플은 Windows 11 버전 22H2 - 2022년 5월 드라이버 샘플 업데이트에서 찾을 수 있습니다.

자세한 내용은 UMDF를 사용하여 시작 참조하세요.

드라이버가 디바이스 인터럽트를 처리하는 경우 인터럽트를 사용하거나 사용하지 않도록 설정하는 OnInterruptEnableOnInterruptDisable 콜백 함수를 제공해야 합니다. 이러한 콜백 함수는 디바이스의 인터럽트 메커니즘을 사용하도록 설정하고 사용하지 않도록 설정하는 데 필요한 모든 작업을 수행해야 합니다.

드라이버가 인터럽트 사용 또는 비활성화와 관련된 추가 작업을 수행해야 하는 경우 드라이버는 IPnpCallbackHardwareInterrupt::OnD0EntryPostInterruptsEnabledIPnpCallbackHardwareInterrupt::OnD0ExitPreInterruptsDisabled 콜백 함수를 제공할 수도 있습니다.

프레임워크는 프레임워크가 드라이버의 OnD0Entry 콜백 함수를 호출한 후 디바이스가 작동(D0) 상태가 될 때마다 드라이버의 OnInterruptEnableIPnpCallbackHardwareInterrupt::OnD0EntryPostInterruptsEnabled 콜백 함수를 호출합니다. 프레임워크는 프레임워크가 드라이버의 OnD0Exit 콜백 함수를 호출하기 전에 디바이스가 작동 상태를 떠날 때마다 드라이버의 IPnpCallbackHardwareInterrupt::OnD0ExitPreInterruptsDisabledOnInterruptDisable 콜백 함수를 호출합니다. 프레임워크가 드라이버의 콜백 함수를 호출하는 경우에 대한 자세한 내용은 UMDF 기반 드라이버의 PnP 및 전원 관리를 참조하세요.

프레임워크가 드라이버의 OnInterruptEnable 콜백 함수를 호출할 때마다 디바이스가 동일한 인터럽트 리소스를 사용한다고 가정해서는 안 됩니다. 경우에 따라 PnP 관리자는 시스템 리소스를 재배포하고 디바이스에 새 인터럽트 리소스를 할당할 수 있습니다.

드라이버는 IWDFInterrupt::GetInfo 를 호출하여 디바이스의 인터럽트 리소스를 확인할 수 있습니다. 드라이버는 IWDFInterrupt::GetDevice 를 호출하여 인터럽트 개체가 속한 디바이스를 확인할 수 있습니다.

인터럽트를 직접 사용하도록 설정하고 사용하지 않도록 설정하려면 드라이버는 인터럽트 개체의 IWDFInterrupt::EnableIWDFInterrupt::D isable 메서드를 호출할 수 있습니다. 이 메서드는 드라이버의 OnInterruptEnable 및 OnInterruptDisable 이벤트 콜백 함수를 호출합니다. 그러나 대부분의 드라이버는 프레임워크가 적절한 시간에 OnInterruptEnableOnInterruptDisable 콜백 함수를 호출하도록 허용해야 합니다.