Поделиться через


структура 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

Размер смещения от Смещения, в байтах, в которых записываются данные для устройств, отличных от 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 устройства E-DDC находятся на I2CAddress (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