KMDF 미니포트 드라이버 만들기

포트/미니포트 아키텍처를 통해 미니포트 드라이버가 WDM 또는 프레임워크 인터페이스를 사용하여 다른 드라이버와 통신할 수 있는 경우 일부 미니포트 드라이버는 Kernel-Mode Driver Framework를 사용할 수 있습니다. 예를 들어 WDM 하위 에지가 있는 NDIS 미니포트 드라이버는 프레임워크를 사용하여 아래쪽 가장자리를 구현할 수 있습니다.

미니포트 드라이버가 프레임워크를 사용하도록 하려면 드라이버는 다음을 수행해야 합니다.

  • WdfDriverCreate를 호출하기 전에 드라이버의 WDF_DRIVER_CONFIG 구조체의 DriverInitFlags 멤버에서 WdfDriverInitNoDispatchOverride 플래그 설정합니다. 이 플래그를 설정하면 프레임워크 대신 포트 드라이버가 I/O 관리자가 드라이버에 지시한 I/O 요청 패킷(IRP)을 가로챌 수 있습니다.

  • WdfDeviceCreate 대신 WdfDeviceMiniportCreate를 호출하여 미니포트 드라이버의 디바이스에 대한 프레임워크 디바이스 개체를 만듭니다. 미니포트 드라이버는 포트 드라이버가 디바이스를 사용할 수 있음을 알릴 때 WdfDeviceMiniportCreate 를 호출해야 합니다.

  • WdfObjectDelete를 호출하여 드라이버가 디바이스가 제거되었음을 확인할 때 WdfDeviceMiniportCreate가 만드는 디바이스 개체를 삭제합니다. 드라이버가 WdfDriverInitNoDispatchOverride 플래그를 설정했기 때문에 프레임워크는 디바이스가 제거된 시기를 확인할 수 없으며 디바이스 개체를 삭제할 수 없습니다.

  • 포트 드라이버가 미니포트 드라이버에 언로드될 예정임을 알리면 WdfDriverMiniportUnload 를 호출합니다.

미니포트 드라이버는 기본 디바이스가 PnP(플러그 앤 플레이)를 지원하는 경우에만 프레임워크를 사용할 수 있습니다. 미니포트 드라이버는 프레임워크의 제어 디바이스 개체를 사용할 수 없습니다.

WdfDeviceMiniportCreate 메서드가 만드는 디바이스 개체에 제한이 적용됩니다. 이러한 제한 사항 목록은 WdfDeviceMiniportCreate를 참조하세요.