인터럽트 개체 만들기(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를 사용하여 시작 참조하세요.
디바이스의 하드웨어 인터럽트 처리 UMDF 드라이버는 각 디바이스가 지원할 수 있는 각 인터럽트마다 프레임워크 인터럽트 개체를 만들어야 합니다.
일반적으로 드라이버는 IDriverEntry::OnDeviceAdd에서 프레임워크 인터럽트 개체를 만듭니다. 그러나 IPnpCallbackHardware2::OnPrepareHardware에서 인터럽트 개체를 만들 수도 있습니다.
프레임워크 인터럽트 개체를 만들려면 드라이버가 WUDF_INTERRUPT_CONFIG 구조를 초기화하고 IWDFDevice3::CreateInterrupt 메서드에 전달해야 합니다. 이 메서드는 다음 드라이버 제공 이벤트 콜백 함수를 등록합니다.
OnInterruptEnable
하드웨어 인터럽트 사용
OnInterruptDisable
하드웨어 인터럽트 사용 안 함
OnInterruptIsr
인터럽트용 ISR(인터럽트 서비스 루틴)입니다.
OnInterruptWorkItem
인터럽트 작업자 루틴입니다.
필요에 따라 드라이버는 IWDFInterrupt::SetPolicy 또는 IWDFInterrupt::SetExtendedPolicy 를 호출하여 추가 인터럽트 매개 변수를 지정할 수 있습니다.
프레임워크는 플러그 앤 플레이(PnP) 관리자가 인터럽트 벡터와 같은 시스템 리소스를 디바이스에 할당하기 전에 드라이버의 IDriverEntry::OnDeviceAdd 콜백 함수를 호출합니다. PnP 관리자가 리소스를 할당한 후 프레임워크는 디바이스의 인터럽트 개체에 인터럽트 리소스를 저장합니다. (플러그 앤 플레이 지원하지 않는 드라이버는 인터럽트 개체를 사용할 수 없습니다.)
MSI(메시지 신호 인터럽트)는 Windows Vista 이상 버전의 운영 체제에서 지원됩니다. 운영 체제가 디바이스에 대한 MSI를 지원할 수 있도록 하려면 드라이버의 INF 파일이 레지스트리에 일부 값을 설정해야 합니다. 이러한 값을 설정하는 방법에 대한 자세한 내용은 레지스트리에서 Message-Signaled 인터럽트 사용을 참조하세요.
디바이스에서 특정 수의 MSI 메시지를 지원할 수 있는 경우 PnP 관리자는 해당 메시지 수를 디바이스에 할당하려고 합니다. PnP 관리자가 디바이스에서 지원할 수 있는 모든 메시지를 할당할 수 없는 경우 디바이스에 하나의 메시지만 할당합니다.
드라이버는 디바이스에서 지원할 수 있는 각 인터럽트 벡터 또는 MSI 메시지에 대한 프레임워크 인터럽트 개체를 만들어야 합니다. PnP 관리자가 디바이스에서 지원할 수 있는 모든 인터럽트 리소스를 디바이스에 부여하지 않으면 추가 인터럽트 개체가 사용되지 않으며 해당 콜백 함수가 호출되지 않습니다.