функция обратного вызова 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:
Значение | Значение |
---|---|
Мониторинг | Дочернее устройство является монитором. Если драйвер мини-порта обнаруживает, что монитор имеет связанную с ним структуру EDID , совместимую с DDC2, драйвер минипорта должен извлечь данные EDID из монитора и вернуть их в буфер, на который указывает pChildDescriptor. Драйвер мини-порта может легко получить EDID из монитора, вызвав VideoPortDDCMonitorHelper. Если обнаруженный монитор не соответствует DDC2, драйвер мини-порта не должен возвращать ничего в pChildDescriptor. |
NonPrimaryChip | Зарезервировано для использования системой. |
VideoChip | Дочерним устройством является графический чип. Драйвер минипорта должен возвращать этот тип, если childEnumInfo.ChildIndex имеет значение DISPLAY_ADAPTER_HW_ID. Драйвер мини-порта не должен возвращать ничего в pChildDescriptor. |
Другое | С дочерним устройством связан отдельный драйвер устройства. Драйвер мини-порта должен возвращать идентификатор оборудования PnP устройства в виде строки Юникода в буфере, на который указывает pChildDescriptor. Эта строка должна соответствовать идентификатору устройства , указанному в INF-файле драйвера. Он будет использоваться операционной системой в качестве идентификатора оборудования для этого устройства. |
[out] pChildDescriptor
Указатель на буфер, в котором драйвер мини-порта может возвращать данные, идентифицирующее устройство. Возвращаемые сведения зависят от дочернего типа, указанного в VideoChildType. Размер этого буфера определяется драйвером видеопорта в элементе ChildDescriptorSizeVIDEO_CHILD_ENUM_INFO.
[out] UId
Указатель на расположение, в котором драйвер мини-порта возвращает уникальный 32-разрядный идентификатор устройства . Драйвер мини-порта должен задать 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. Чтобы разрешить перечисление дочерних элементов устройства перед запуском устройства, задайте элемент AllowEarlyEnumerationVIDEO_HW_INITIALIZATION_DATA. Если задан параметр AllowEarlyEnumeration , можно в любое время вызвать HwVidGetVideoChildDescriptor .
HwVidGetVideoChildDescriptor должен выполнять следующие действия:
- Определите тип дочернего устройства на основе данных, предоставленных в ChildEnumInfo, и верните этот тип в VideoChildType.
- Заполните буфер, на который указывает pChildDescriptor , соответствующими данными, в зависимости от значения VideoChildType.
- Запишите 32-разрядное значение в UId , которое однозначно идентифицирует перечисляемое дочернее устройство. Драйвер видеопорта передаст этот дескриптор обратно драйверу мини-порта для выполнения таких операций, как управление питанием.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | video.h (включить Video.h) |