PVIDEO_HW_QUERY_INTERFACE callback function (video.h)
HwVidQueryInterface returns a miniport driver-implemented functional interface that a child device can call.
Syntax
PVIDEO_HW_QUERY_INTERFACE PvideoHwQueryInterface;
VP_STATUS PvideoHwQueryInterface(
PVOID HwDeviceExtension,
PQUERY_INTERFACE QueryInterface
)
{...}
Parameters
HwDeviceExtension
Pointer to the miniport driver's per-adapter storage area. For more information, see Device Extensions.
QueryInterface
Pointer to a QUERY_INTERFACE structure in which the miniport driver should return information about the interface it supports.
Return value
HwVidQueryInterface should return NO_ERROR upon success; otherwise it should return the appropriate error code. For example, a miniport driver should return ERROR_OUTOFMEMORY if it cannot allocate memory to complete the operation.
Remarks
HwVidQueryInterface exposes a communication mechanism between the video miniport driver and the driver of a child device. A miniport driver that exposes such a mechanism should implement this function.
The video port calls HwVidQueryInterface when it receives an IRP_MN_QUERY_INTERFACE request. If the miniport driver fails the call, the video port driver passes the request to the parent of the miniport driver's device.
HwVidQueryInterface should fill in the members of the INTERFACE structure to which QueryInterface->Interface points as follows:
- Set Size to the number of bytes in the INTERFACE structure. This value must not exceed the number of bytes specified by QueryInterface->Size.
- Set Version to the version of the interface being returned by the miniport driver. The miniport driver should best match the version requested by the child driver in QueryInterface->Version.
- Set Context to point to a miniport driver-defined context for the interface. Typically, a miniport driver would set Context to point to the device extension identified by HwDeviceExtension.
- Initialize InterfaceReference and InterfaceDereference to point to the miniport driver-implemented reference and dereference routines for this interface.
- Initialize all additional interface-specific members to point to the appropriate routines of the interface being exposed.
The driver of a child device can call into the miniport driver through the functions exposed by HwVidQueryInterface at any time without the video port driver's knowledge. Consequently, the miniport driver must synchronize access to itself by acquiring and releasing the video port driver-maintained device lock in all of the functions exposed by HwVidQueryInterface.
A child device is enumerated by HwVidGetVideoChildDescriptor.
HwVidQueryInterface should be made pageable.
Requirements
Requirement | Value |
---|---|
Target Platform | Desktop |
Header | video.h (include Video.h) |