// video.h
VIDEOPORT_API VP_STATUS VideoPortQueryServices(
[in] IN PVOID HwDeviceExtension,
[in] IN VIDEO_PORT_SERVICES ServicesType,
[in, out] IN OUT PINTERFACE Interface
);
View the official Windows Driver Kit DDI referenceNo description available.
The VideoPortQueryServices function exposes a specified interface that is implemented by the video port driver.
HwDeviceExtension [in]Pointer to the miniport driver's device extension.
ServicesType [in]A value from the VIDEO_PORT_SERVICES enumerated type that specifies which interface is being requested.
Interface [in, out]Pointer to an INTERFACE structure, which contains basic information about the requested interface. See the following Remarks section for more information.
If VideoPortQueryServices succeeds, it returns NO_ERROR; otherwise, it returns an error code.
If the ServicesType parameter is set to VideoPortServicesI2C, the Interface parameter must be a pointer to a VIDEO_PORT_I2C_INTERFACE structure, cast as a pointer to an INTERFACE structure.
Similarly, if the ServicesType parameter is set to VideoPortServicesAGP, the Interface parameter must be a pointer to either a VIDEO_PORT_AGP_INTERFACE structure, or a VIDEO_PORT_AGP_INTERFACE_2 structure, each cast as a pointer to an INTERFACE structure.
The VIDEO_PORT_AGP_INTERFACE and VIDEO_PORT_AGP_INTERFACE_2 structures are nearly identical, except that the latter structure has a member that points to the AgpSetRate function, which is used to reset the transfer rate for an AGP chipset. A video miniport driver querying AGP support should call VideoPortQueryServices first with Interface pointing to a VIDEO_PORT_AGP_INTERFACE_2 structure. If that call fails, the miniport driver can then make another call to VideoPortQueryServices, this time with Interface pointing to a VIDEO_PORT_AGP_INTERFACE structure.
If the ServicesType parameter is set to VideoPortServicesInt10, the Interface parameter must be a pointer to a VIDEO_PORT_INT10_INTERFACE structure, cast as a pointer to an INTERFACE structure.
If the ServicesType parameter is set to VideoPortServicesDebugReport, the Interface parameter must be a pointer to a VIDEO_PORT_DEBUG_REPORT_INTERFACE structure, cast as a pointer to an INTERFACE structure.
If the ServicesType parameter is set to VideoPortServicesWCMemoryProtection, the Interface parameter must be a pointer to a VIDEO_PORT_WCMEMORYPROTECTION_INTERFACE structure, cast as a pointer to an INTERFACE structure.
VIDEO_PORT_DEBUG_REPORT_INTERFACE
VIDEO_PORT_WCMEMORYPROTECTION_INTERFACE