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