функция обратного вызова DXGKDDI_QUERY_DEVICE_DESCRIPTOR (dispmprt.h)

Функция DxgkDdiQueryDeviceDescriptor возвращает дескриптор для дочернего устройства видеоадаптера или для внешнего устройства (обычно монитора), подключенного к дочернему устройству видеоадаптера.

Синтаксис

DXGKDDI_QUERY_DEVICE_DESCRIPTOR DxgkddiQueryDeviceDescriptor;

NTSTATUS DxgkddiQueryDeviceDescriptor(
  [in]      IN_CONST_PVOID MiniportDeviceContext,
  [in]      IN_ULONG ChildUid,
  [in, out] INOUT_PDXGK_DEVICE_DESCRIPTOR DeviceDescriptor
)
{...}

Параметры

[in] MiniportDeviceContext

Дескриптор для блока контекста, связанного с видеоадаптером. Функция DxgkDdiAdddDevice драйвера мини-порта дисплея ранее предоставляла этот дескриптор подсистеме ядра графики DirectX.

[in] ChildUid

Целое число, однозначно определяющее дочернее устройство. Функция DxgkDdiQueryChildRelations драйвера мини-порта дисплея ранее предоставляла этот идентификатор драйверу порта отображения.

[in, out] DeviceDescriptor

Указатель на структуру DXGK_DEVICE_DESCRIPTOR . Вызывающий объект инициализирует элементы DescriptorLength и DescriptorBuffer . Если дочернее устройство имеет тип TypeVideoOutput, вызывающий объект также инициализирует элемент DescriptorOffset . При возврате выделенный вызывающим буфер, на который указывает член DescriptorBuffer , получает дескриптор.

Возвращаемое значение

DxgkDdiQueryDeviceDescriptor возвращает одно из следующих значений:

Код возврата Описание
STATUS_SUCCESS Функция успешно вернула дескриптор устройства.
STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED (подключенное) дочернее устройство, определенное ChildUid, не поддерживает дескриптор.
STATUS_MONITOR_NO_DESCRIPTOR Дочернее устройство, определенное ChildUid, подключено к монитору, который не поддерживает дескриптор EDID.
STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA Дочернее устройство, определенное ChildUid, подключено к монитору, который поддерживает дескриптор EDID, но дескриптор не имеет блока расширения EDID, указанного дескриптором DescriptorOffset и DescriptorLengthmembers элемента DeviceDescriptor.

Комментарии

DxgkDdiQueryDeviceDescriptor никогда не должен записывать больше, чем количество байтов, указанное в DeviceDescriptor-DescriptorLength.>

Если дочернее устройство, определенное ChildUid , имеет тип TypeVideoOutput, DxgkDdiQueryDeviceDescriptor возвращает часть данных EDID для монитора, подключенного к выходным данным. DeviceDescriptor-DescriptorOffset> указывает смещение байтов в EDID начала возвращаемых данных.

Если дочернее устройство, определенное ChildUid , не является выходным видео, dxgkDdiQueryDeviceDescriptor возвращает универсальный дескриптор устройства; то есть заполняет элементы структуры DXGK_GENERIC_DESCRIPTOR .

Функцию DxgkDdiQueryDeviceDescriptor можно вызвать несколько раз для одного дочернего устройства. Для дочернего устройства с подключенным монитором драйвер порта дисплея вызывает DxgkDdiQueryDeviceDescriptor во время инициализации, чтобы получить первый 128-байтный блок EDID монитора. Позже драйвер функции класса монитора (Monitor.sys) вызывает DxgkDdiQueryDeviceDescriptor для получения выбранных частей (включая первый 128-байтный блок) EDID того же монитора.

DxgkDdiQueryDeviceDescriptor должен быть доступным для страниц.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях операционных систем Windows.
Целевая платформа Персональный компьютер
Верхняя часть dispmprt.h
IRQL PASSIVE_LEVEL

См. также раздел

DXGK_CHILD_DESCRIPTOR

DXGK_DEVICE_DESCRIPTOR

DxgkDdiQueryChildRelations

DxgkDdiQueryChildStatus