функция обратного вызова 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
Дескриптор для блока контекста, связанного с видеоадаптером. Функция DxgkDdiAddDevice драйвера мини-порта дисплея ранее предоставляла этот дескриптор подсистеме графического ядра 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, заданного дескрипторами Descriptor и 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 |
Целевая платформа | Персональный компьютер |
Верхняя часть | dispmprt.h |
IRQL | PASSIVE_LEVEL |