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