PVIDEO_HW_GET_CHILD_DESCRIPTOR回调函数 (video.h)

HwVidGetVideoChildDescriptor 返回显示适配器的特定子设备的描述符、类型和标识号。

语法

PVIDEO_HW_GET_CHILD_DESCRIPTOR PvideoHwGetChildDescriptor;

VP_STATUS PvideoHwGetChildDescriptor(
  [in]  IN PVOID HwDeviceExtension,
  [in]  IN PVIDEO_CHILD_ENUM_INFO ChildEnumInfo,
  [out] OUT PVIDEO_CHILD_TYPE VideoChildType,
  [out] OUT PUCHAR pChildDescriptor,
  [out] OUT PULONG UId,
  [out] OUT PULONG pUnused
)
{...}

参数

[in] HwDeviceExtension

指向微型端口驱动程序的每个适配器存储区域的指针。 有关详细信息,请参阅 设备扩展

[in] ChildEnumInfo

描述要枚举的设备 VIDEO_CHILD_ENUM_INFO 结构。

[out] VideoChildType

指向微型端口驱动程序返回要枚举的子级类型的位置的指针。 此成员可以是VIDEO_CHILD_TYPE枚举中的下列成员之一:

含义
监视器 子设备是监视器。 如果微型端口驱动程序检测到监视器具有与 DDC2 兼容的 EDID 结构,微型端口驱动程序应从监视器中提取 EDID 信息,并将其返回到 pChildDescriptor 指向的缓冲区中。 微型端口驱动程序可以通过调用 VideoPortDDCMonitorHelper更轻松地从监视器获取 EDID。
如果检测到的监视器不符合 DDC2,微型端口驱动程序不应返回 pChildDescriptor 中的任何内容。
NonPrimaryChip 保留供系统使用。
VideoChip 子设备是图形芯片。
当 ChildEnumInfo.ChildIndex DISPLAY_ADAPTER_HW_ID时,微型端口驱动程序应返回此类型。 微型端口驱动程序不应返回 pChildDescriptor 中的任何内容。
其他 子设备具有与之关联的单独设备驱动程序。
微型端口驱动程序应将设备的 PnP 硬件标识符作为 pChildDescriptor 指向的缓冲区中的 Unicode 字符串返回。 此字符串必须与驱动程序 INF 文件中指定的 设备 ID 匹配。 作系统将使用它作为此设备的硬件 ID。

[out] pChildDescriptor

指向微型端口驱动程序可以返回标识设备的数据的缓冲区的指针。 返回的信息取决于 VideoChildType中指定的子类型。 此缓冲区的大小由 ChildDescriptorSizeVIDEO_CHILD_ENUM_INFO成员中的视频端口驱动程序指定。

[out] UId

指向微型端口驱动程序返回此设备的唯一 32 位 设备 ID 的位置的指针。 当设备是实际的显示适配器时,微型端口驱动程序应将 UId 设置为DISPLAY_ADAPTER_HW_ID。

[out] pUnused

未使用,并且必须设置为零。

返回值

HwVidGetVideoChildDescriptor 返回以下值之一:

返回代码 描述
VIDEO_ENUM_INVALID_DEVICE 再次呼叫。 微型端口驱动程序无法枚举 ChildEnumInfo 中标识的子设备,但还需要枚举更多设备。
VIDEO_ENUM_MORE_DEVICES 枚举新的子设备。 在这种情况下,视频端口将再次调用 HwVidGetVideoChildDescriptor。
VIDEO_ENUM_NO_MORE_DEVICES 微型端口驱动程序无法枚举 ChildEnumInfo 中标识的子设备。 停止枚举。 无需再枚举任何设备。

言论

默认情况下,HwVidGetVideoChildDescriptor 直到 HwVidFindAdapter启动设备后才会调用。 若要在启动设备之前允许枚举设备的子项,请设置 VIDEO_HW_INITIALIZATION_DATAAllowEarlyEnumeration 成员。 AllowEarlyEnumeration 设置后,可以随时调用 HwVidGetVideoChildDescriptor

HwVidGetVideoChildDescriptor 应执行以下作:

  • 根据 ChildEnumInfo中提供的数据确定子设备的类型,并在 videoChildType 中返回此类型。
  • 根据 VideoChildType的值,填充 pChildDescriptor 指向的缓冲区。
  • UId 中编写一个 32 位值,用于唯一标识要枚举的子设备。 视频端口驱动程序会将此句柄传回微型端口驱动程序,以便进行电源管理等作。
HwVidGetVideoChildDescriptor 进行分页。

要求

要求 价值
目标平台 桌面
标头 video.h (include Video.h)

另请参阅

HwVidGetPowerState

HwVidSetPowerState

VIDEO_CHILD_ENUM_INFO

VideoPortDDCMonitorHelper

VideoPortEnumerateChildren