자식 디바이스의 드라이버와 통신
비디오 미니포트 드라이버와 자식 디바이스의 드라이버는 자식 드라이버가 부모 미니포트 드라이버를 통해 하드웨어와 통신할 수 있는 인터페이스를 상호 정의할 수 있습니다. 자식 드라이버는 부모 미니포트 드라이버의 비디오 포트 드라이버에 IRP_MN_QUERY_INTERFACE 요청을 전송하여 이 인터페이스를 가져옵니다. 이러한 요청을 받으면 비디오 포트 드라이버가 정의된 경우 미니포트 드라이버의 HwVidQueryInterface 함수를 호출하고 미니포트 드라이버는 인터페이스에 대한 포인터를 반환합니다. 그런 다음 자식 디바이스의 드라이버는 언제든지 HwVidQueryInterface 에 의해 노출되는 함수를 통해 미니포트 드라이버를 호출할 수 있습니다.
미니포트 드라이버가 HwVidQueryInterface 를 구현하지 않거나 호출에 실패하면 비디오 포트 드라이버가 미니포트 드라이버 디바이스의 부모에 요청을 전달합니다. 자식 드라이버가 미니포트 드라이버의 다른 자식에 IRP_MN_QUERY_INTERFACE 보내고 다른 자식 드라이버가 HwVidQueryInterface 를 구현하지 않거나 호출에 실패하면 비디오 포트 드라이버가 오류를 반환합니다.
자식 드라이버가 비디오 포트 드라이버의 지식 없이 미니포트 드라이버를 호출할 수 있으므로 미니포트 드라이버는 HwVidQueryInterface에 의해 노출된 모든 함수에서 자체에 대한 액세스를 동기화해야 합니다. VideoPortAcquireDeviceLock 및 VideoPortReleaseDeviceLock을 호출하여 비디오 포트 드라이버 유지 디바이스 잠금을 각각 잡고 해제하여 이 작업을 수행합니다.
자식 디바이스는 HwVidGetVideoChildDescriptor로 열거됩니다.