структура DXGKARG_DPI2CIOTRANSMISSION (dispmprt.h)

Структура DXGKARG_DPI2CIOTRANSMISSION является параметром для обратного вызова DXGKDDI_DPI2CIOTRANSMISSION .

Синтаксис

typedef struct _DXGKARG_DPI2CIOTRANSMISSION {
  struct {
    UINT Read : 1;
    UINT Write : 1;
    UINT EDDCMode : 1;
    UINT OffsetSizeInBytes : 3;
    UINT CanUseCachedData : 1;
    UINT Reserved : 25;
  };
  UINT   RootPortIndex;
  UINT   I2CAddress;
  union {
    struct {
      UINT WordOffset : 8;
      UINT SegmentPointer : 7;
      UINT Reserved1 : 17;
    };
    UINT Offset;
  };
  UINT   BufferSizeSupplied;
  UINT   BytesToWrite;
  UINT   BytesToRead;
  UINT   DPNativeError;
  UINT   BytesWritten;
  UINT   BytesRead;
  BYTE   Data[1];
} DXGKARG_DPI2CIOTRANSMISSION, *PDXGKARG_DPI2CIOTRANSMISSION;

Члены

Read

Если этот параметр задан, выполните операцию чтения DP I2C по протоколу AUX.

Write

Если этот параметр задан, выполните операцию записи DP I2C по протоколу AUX.

EDDCMode

Если этот параметр задан, устройство в I2CAddress — расширенный канал данных дисплея (E-DDC).

OffsetSizeInBytes

Размер смещения от Offset в байтах для записи данных для устройств, отличных от E-DDC.

CanUseCachedData

Если этот параметр задан, драйвер может использовать кэшированные данные.

Reserved

Защищены; не использовать.

RootPortIndex

Значение индекса соединителя с поддержкой DP, на котором выполняется операция чтения или записи DP I2C через AUX. Драйвер вернул общее количество соединителей с поддержкой DP на GPU в предыдущем вызове DXGKDDI_QUERYDPCAPS. Последующие вызовы DXGKDDI_DPI2CIOTRANSMISSION ссылаться на соединители DP с rootPortIndex в диапазоне от 0 до NumRootPorts — 1.

I2CAddress

Адрес I2C. Задайте значение 0xA0 для EDID или 0xA4 для DisplayID.

WordOffset

смещение Word в байтах.

SegmentPointer

Если задан параметр EDDCMode , драйвер должен записать SegmentPointer в адрес I2C 0x60. SegmentPointer определяет 256-байтовый блок данных, к которым осуществляется доступ для устройств E-DDC.

Reserved1

Защищены; не использовать.

Offset

Адрес для операций ввода-вывода на устройстве.

BufferSizeSupplied

Размер буфера данных в байтах. BufferSizeSupplied должен быть больше или равен большему значению BytesToWrite и BytesToWrite.

BytesToWrite

Число байтов, записываемых для операции записи.

BytesToRead

Число байтов, считываемых для операции чтения.

DPNativeError

Поле, в котором драйвер может закодировать дополнительные сведения об ошибке при возврате STATUS_DEVICE_PROTOCOL_ERROR из DXGKDDI_DPI2CIOTRANSMISSION.

BytesWritten

Число записанных байтов. Драйвер должен возвращать это значение как можно точнее в случае сбоя.

BytesRead

Число прочитанных байтов. Драйвер должен возвращать это значение как можно точнее в случае сбоя.

Data[1]

Буфер, содержащий данные для записи для операции записи и (или) для получения данных для операции чтения.

Комментарии

Если задан EDDCMode , драйвер должен записать WordOffset в OffsetSizeInBytes.

Если задан EDDCMode , в I2CAddress есть устройства E-DDC (0xA0 для EDID, 0xA4 для DisplayID). В этом случае драйвер должен записать SegmentPointer на I2C-адрес 0x60, WordOffset в I2CAddress, а затем выполнить операцию ввода-вывода. Для всех остальных устройств I2C драйвер должен записывать байты Offset в соответствии с OffsetSizeInBytes.

В случае сбоя драйвер должен возвращать BytesWritten и BytesRead как можно точнее.

Для Windows 10 версии 2004 операция записи разрешена только для адреса MCCS I2C 0x6E. Все остальные операции будут заблокированы до более поздней версии ОС при добавлении управления доступом.

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 2004
Верхняя часть dispmprt.h

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

DXGKDDI_DPI2CIOTRANSMISSION

DXGKDDI_QUERYDPCAPS