인터럽트 사용 및 사용 안 함(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를 사용하여 시작 참조하세요.
드라이버가 디바이스 인터럽트를 처리하는 경우 인터럽트를 사용하거나 사용하지 않도록 설정하는 OnInterruptEnable 및 OnInterruptDisable 콜백 함수를 제공해야 합니다. 이러한 콜백 함수는 디바이스의 인터럽트 메커니즘을 사용하도록 설정하고 사용하지 않도록 설정하는 데 필요한 모든 작업을 수행해야 합니다.
드라이버가 인터럽트 사용 또는 비활성화와 관련된 추가 작업을 수행해야 하는 경우 드라이버는 IPnpCallbackHardwareInterrupt::OnD0EntryPostInterruptsEnabled 및 IPnpCallbackHardwareInterrupt::OnD0ExitPreInterruptsDisabled 콜백 함수를 제공할 수도 있습니다.
프레임워크는 프레임워크가 드라이버의 OnD0Entry 콜백 함수를 호출한 후 디바이스가 작동(D0) 상태가 될 때마다 드라이버의 OnInterruptEnable 및 IPnpCallbackHardwareInterrupt::OnD0EntryPostInterruptsEnabled 콜백 함수를 호출합니다. 프레임워크는 프레임워크가 드라이버의 OnD0Exit 콜백 함수를 호출하기 전에 디바이스가 작동 상태를 떠날 때마다 드라이버의 IPnpCallbackHardwareInterrupt::OnD0ExitPreInterruptsDisabled 및 OnInterruptDisable 콜백 함수를 호출합니다. 프레임워크가 드라이버의 콜백 함수를 호출하는 경우에 대한 자세한 내용은 UMDF 기반 드라이버의 PnP 및 전원 관리를 참조하세요.
프레임워크가 드라이버의 OnInterruptEnable 콜백 함수를 호출할 때마다 디바이스가 동일한 인터럽트 리소스를 사용한다고 가정해서는 안 됩니다. 경우에 따라 PnP 관리자는 시스템 리소스를 재배포하고 디바이스에 새 인터럽트 리소스를 할당할 수 있습니다.
드라이버는 IWDFInterrupt::GetInfo 를 호출하여 디바이스의 인터럽트 리소스를 확인할 수 있습니다. 드라이버는 IWDFInterrupt::GetDevice 를 호출하여 인터럽트 개체가 속한 디바이스를 확인할 수 있습니다.
인터럽트를 직접 사용하도록 설정하고 사용하지 않도록 설정하려면 드라이버는 인터럽트 개체의 IWDFInterrupt::Enable 및 IWDFInterrupt::D isable 메서드를 호출할 수 있습니다. 이 메서드는 드라이버의 OnInterruptEnable 및 OnInterruptDisable 이벤트 콜백 함수를 호출합니다. 그러나 대부분의 드라이버는 프레임워크가 적절한 시간에 OnInterruptEnable 및 OnInterruptDisable 콜백 함수를 호출하도록 허용해야 합니다.