다음을 통해 공유


프레임워크에서 지원하지 않는 IRP 처리

[KMDF에만 적용]

프레임워크는 다음과 같은 주요 IRP 코드가 있는 I/O 요청을 지원하지 않습니다.

프레임워크가 이러한 I/O 함수 코드 중 하나를 포함하는 IRP를 수신하는 경우 프레임워크는 IRP를 처리하지 않습니다. 드라이버가 필터 드라이버인 경우 프레임워크는 IRP를 드라이버 스택의 다음 하위 드라이버로 전달합니다. 드라이버가 필터 드라이버가 아닌 경우 프레임워크는 IoCompleteRequest를 호출하여 STATUS_INVALID_DEVICE_REQUEST 상태 값으로 IRP를 완료합니다.

드라이버가 이러한 I/O 함수 코드를 포함하는 IRP를 처리해야 하는 경우 드라이버는 WdfDeviceInitAssignWdmIrpPreprocessCallback 을 호출하여 I/O 함수 코드에 대한 EvtDeviceWdmIrpPreprocess 이벤트 콜백 함수를 등록해야 합니다.

드라이버가 EvtDeviceWdmIrpPreprocess 콜백 함수를 등록한 I/O 함수 코드가 포함된 IRP를 수신하면 프레임워크는 IRP를 콜백 함수에 전달합니다. 콜백 함수는 IRP를 처리하기 위한 WDM 규칙에 따라 IRP를 처리해야 합니다. 드라이버는 IRP를 완료하려면 IoCompleteRequest 를 호출하거나 IoCallDriver 를 호출하여 IRP를 다음 하위 드라이버에 전달해야 합니다.

프레임워크에서 지원하지 않는 IRP를 처리하는 EvtDeviceWdmIrpPreprocess 콜백 함수의 예제는 직렬 샘플 드라이버를 참조하세요.