PVIDEO_HW_QUERY_INTERFACE 콜백 함수(video.h)

HwVidQueryInterface 는 자식 디바이스에서 호출할 수 있는 미니포트 드라이버 구현 기능 인터페이스를 반환합니다.

구문

PVIDEO_HW_QUERY_INTERFACE PvideoHwQueryInterface;

VP_STATUS PvideoHwQueryInterface(
  PVOID HwDeviceExtension,
  PQUERY_INTERFACE QueryInterface
)
{...}

매개 변수

HwDeviceExtension

미니포트 드라이버의 어댑터별 스토리지 영역에 대한 포인터입니다. 자세한 내용은 디바이스 확장을 참조하세요.

QueryInterface

미니포트 드라이버가 지원하는 인터페이스에 대한 정보를 반환해야 하는 QUERY_INTERFACE 구조체에 대한 포인터입니다.

반환 값

HwVidQueryInterface 는 성공하면 NO_ERROR 반환해야 합니다. 그렇지 않으면 적절한 오류 코드를 반환해야 합니다. 예를 들어 미니포트 드라이버는 작업을 완료하기 위해 메모리를 할당할 수 없는 경우 ERROR_OUTOFMEMORY 반환해야 합니다.

설명

HwVidQueryInterface 는 비디오 미니포트 드라이버와 자식 디바이스 드라이버 간의 통신 메커니즘을 노출합니다. 이러한 메커니즘을 노출하는 미니포트 드라이버는 이 함수를 구현해야 합니다.

비디오 포트는 IRP_MN_QUERY_INTERFACE 요청을 받으면 HwVidQueryInterface 를 호출합니다. 미니포트 드라이버가 호출에 실패하면 비디오 포트 드라이버가 미니포트 드라이버 디바이스의 부모에 요청을 전달합니다.

HwVidQueryInterfaceQueryInterfaceInterface->가 가리키는 INTERFACE 구조의 멤버를 다음과 같이 채워야 합니다.

  • INTERFACE 구조의 바이트 수로 크기를 설정합니다. 이 값은 QueryInterfaceSize->에서 지정한 바이트 수를 초과해서는 안 됩니다.
  • 버전을 미니포트 드라이버에서 반환되는 인터페이스 버전으로 설정합니다. 미니포트 드라이버는 QueryInterfaceVersion->에서 자식 드라이버가 요청한 버전 가장 일치해야 합니다.
  • 인터페이스에 대한 미니포트 드라이버 정의 컨텍스트를 가리키도록 컨텍스트 를 설정합니다. 일반적으로 미니포트 드라이버는 HwDeviceExtension으로 식별된 디바이스 확장을 가리키도록 컨텍스트를 설정합니다.
  • 이 인터페이스에 대한 미니포트 드라이버 구현 참조 및 역참조 루틴을 가리키도록 InterfaceReference 및 InterfaceDereference를 초기화합니다.
  • 노출되는 인터페이스의 적절한 루틴을 가리키도록 모든 추가 인터페이스별 멤버를 초기화합니다.
인터페이스를 반환하는 미니포트 드라이버는 QueryInterfaceInterface.InterfaceReference->를 호출하여 인터페이스를 참조합니다. 인터페이스를 요청하는 자식 드라이버는 드라이버가 QueryInterfaceInterface.InterfaceDereference->를 호출하여 인터페이스를 더 이상 필요로 하지 않을 때 인터페이스를 역참조합니다. 자식 드라이버가 인터페이스를 다른 구성 요소에 전달하는 경우 자식은 다른 참조를 제거해야 하며 다른 구성 요소는 인터페이스에 더 이상 액세스할 필요가 없는 경우 추가 참조를 제거할 책임이 있습니다. 참조를 사용하면 부모가 자식 디바이스에서 인터페이스가 여전히 필요한 경우와 결과적으로 부모가 인터페이스 관련 리소스를 해제할 수 있는 시기를 결정할 수 있습니다.

자식 디바이스의 드라이버는 비디오 포트 드라이버의 지식 없이 HwVidQueryInterface 에 의해 노출되는 기능을 통해 언제든지 미니포트 드라이버를 호출할 수 있습니다. 따라서 미니포트 드라이버는 HwVidQueryInterface에 의해 노출된 모든 함수에서 비디오 포트 드라이버 유지 관리 디바이스 잠금을 획득하고 해제하여 자체 액세스를 동기화해야 합니다.

자식 디바이스는 HwVidGetVideoChildDescriptor로 열거됩니다.

HwVidQueryInterface 를 페이징할 수 있어야 합니다.

요구 사항

   
대상 플랫폼 데스크톱
헤더 video.h(Video.h 포함)

참고 항목

HwVidGetVideoChildDescriptor

QUERY_INTERFACE

VideoPortAcquireDeviceLock

VideoPortReleaseDeviceLock