다음을 통해 공유


프레임워크 외부에서 WDM IRP 처리

[KMDF에만 적용]

I/O 관리자가 IRP(I/O 요청 패킷)를 프레임워크 기반 드라이버에 전달하는 경우 프레임워크는 IRP를 가로채 다음 중 하나를 수행합니다.

  • IRP를 처리합니다. 예를 들어 프레임워크는 IRP_MJ_PNPIRP_MJ_POWER 주요 I/O 함수 코드를 포함하는 IRP를 처리합니다. 이러한 IRP를 처리하는 동안 프레임워크는 드라이버의 이벤트 콜백 함수를 호출하여 드라이버와 통신할 수 있습니다.

  • IRP에 대한 프레임워크 요청 개체를 만들고 드라이버가 일반적으로 요청 처리기에서 수신하고 처리할 수 있도록 드라이버의 I/O 큐 중 하나에 요청 개체를 전달합니다. 프레임워크는 이러한 방식으로 읽기, 쓰기 및 디바이스 I/O 제어 요청을 처리합니다.

  • IRP에는 프레임워크에서 지원하지 않는 I/O 함수 코드가 포함되어 있으므로 IRP를 다음 하위 드라이버에 전달하거나(드라이버가 필터 드라이버인 경우) STATUS_INVALID_DEVICE_REQUEST 상태 값으로 IRP를 완료합니다.

경우에 따라 드라이버는 프레임워크에서 지원하지 않는 I/O 함수 코드를 처리해야 합니다.

프레임워크가 IRP를 처리하기 전에 드라이버가 IRP를 전처리해야 하는 경우가 드물거나, 프레임워크 및 하위 수준 드라이버가 처리를 완료한 후 드라이버가 IRP를 후처리해야 할 수도 있습니다.

전처리의 일부로 드라이버는 IRP를 특정 I/O 큐로 전달해야 할 수 있습니다.

다음 topics 이러한 상황을 설명합니다.