video.h) (PVIDEO_HW_QUERY_INTERFACE 回调函数
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 结构的成员,如下所示:
- 将 “大小 ”设置为 INTERFACE 结构中的字节数。 此值不得超过 QueryInterface->Size 指定的字节数。
- 将 “版本 ”设置为微型端口驱动程序返回的接口的版本。 微型端口驱动程序应与 QueryInterface->版本中的子驱动程序请求的版本最匹配。
- 将 “上下文” 设置为指向接口的微型端口驱动程序定义的上下文。 通常,微型端口驱动程序会将 Context 设置为指向 HwDeviceExtension 标识的设备扩展。
- 初始化 InterfaceReference 和 InterfaceDereference ,以指向此接口的微型端口驱动程序实现的引用和取消引用例程。
- 初始化所有其他特定于接口的成员,以指向要公开的接口的相应例程。
子设备的驱动程序可以随时通过 HwVidQueryInterface 公开的函数调用微型端口驱动程序,而无需视频端口驱动程序的不知情。 因此,微型端口驱动程序必须通过在 HwVidQueryInterface 公开的所有函数中获取和释放视频端口驱动程序维护的设备锁来同步对自身的访问。
子设备由 HwVidGetVideoChildDescriptor 枚举。
应使 HwVidQueryInterface 可分页。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | video.h (包括 Video.h) |