인터럽트 포팅

인터럽트 지원 및 서비스 코드는 WDF 및 WDM 드라이버에서 비슷합니다. 한 가지 주요 차이점이 있습니다.

  • WDF 드라이버는 WDFINTERRUPT 개체를 만들고 EvtDriverDeviceAdd 콜백에서 WdfInterruptCreate를 호출하여 ISR(인터럽트 서비스 루틴) 콜백을 등록합니다.
  • WDM 드라이버는 KINTERRUPT 구조를 만들고 IRP_MN_START_DEVICE 처리하는 동안 연결합니다.

WDF 드라이버의 EvtInterruptIsr 콜백은 WDM 드라이버의 InterruptService 루틴과 동일한 작업을 수행합니다. EvtInterruptIsr 콜백은 WdfInterruptQueueDpcForIsr를 호출하여 나중에 DISPATCH_LEVEL 처리를 위해 EvtInterruptDpc 콜백을 큐에 대기합니다. 이에 대한 응답으로 프레임워크는 이 콜백을 실행하는 시스템 큐에 DPC 개체를 추가합니다.

프레임워크 인터럽트 개체에 대한 자세한 내용은 하드웨어 인터럽트 처리를 참조하세요.