다음을 통해 공유


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 호출합니다. 미니포트 드라이버가 호출에 실패하면 비디오 포트 드라이버가 미니포트 드라이버 디바이스의 부모에 요청을 전달합니다.

HwVidQueryInterface QueryInterface INTERFACE 구조체의 멤버를 채워야 합니다.>인터페이스 지점은 다음과 같습니다.

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

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

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

HwVidQueryInterface 페이징 가능해야 합니다.

요구 사항

요구
대상 플랫폼 바탕 화면
헤더 video.h(Video.h 포함)

참고 항목

HwVidGetVideoChildDescriptor

QUERY_INTERFACE

VideoPortAcquireDeviceLock

VideoPortReleaseDeviceLock