DXGKARG_DPI2CIOTRANSMISSION structure (dispmprt.h)
The DXGKARG_DPI2CIOTRANSMISSION structure is a parameter for the DXGKDDI_DPI2CIOTRANSMISSION callback.
Syntax
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;
Members
Read
If set, perform a DP I2C over AUX read operation.
Write
If set, perform a DP I2C over AUX write operation.
EDDCMode
If set, the device at I2CAddress is Enhanced Display Data Channel (E-DDC).
OffsetSizeInBytes
Offset size from Offset, in bytes, at which to write data for non-E-DDC devices.
CanUseCachedData
If set, the driver can use cached data.
Reserved
Reserved; do not use.
RootPortIndex
Index value of the DP-capable connector on which to perform the DP I2C over AUX read or write operation. The driver returned the total number of DP-capable connectors on the GPU in a prior call to DXGKDDI_QUERYDPCAPS. Subsequent calls to DXGKDDI_DPI2CIOTRANSMISSION refer to the DP connectors with RootPortIndex ranging from 0 to NumRootPorts - 1.
I2CAddress
I2C address. Set to 0xA0 for EDID, or 0xA4 for DisplayID.
WordOffset
Word offset, in bytes.
SegmentPointer
When EDDCMode is set, the driver should write SegmentPointer to I2C address 0x60. SegmentPointer identifies the 256-byte data block being accessed for E-DDC devices.
Reserved1
Reserved; do not use.
Offset
Address for IO within the device.
BufferSizeSupplied
Size of the Data buffer, in bytes. BufferSizeSupplied should be greater than or equal to the larger of BytesToWrite and BytesToWrite.
BytesToWrite
Number of bytes to write for a write operation.
BytesToRead
Number of bytes to read for a read operation.
DPNativeError
Field in which the driver can encode more details about the error when returning STATUS_DEVICE_PROTOCOL_ERROR from DXGKDDI_DPI2CIOTRANSMISSION.
BytesWritten
Number of bytes written. The driver should return this value as accurately as possible in the case of failure.
BytesRead
Number of bytes read. The driver should return this value as accurately as possible in the case of failure.
Data[1]
Buffer containing the data to write for a write operation, and/or in which to receive the data for a read operation.
Remarks
When EDDCMode is set, the driver should write WordOffset to OffsetSizeInBytes.
When EDDCMode is set, there are E-DDC devices at I2CAddress (0xA0 for EDID, 0xA4 for DisplayID). In this situation, the driver should write SegmentPointer to I2C address 0x60, WordOffset to I2CAddress, and then carry out the IO operation. For all other I2C devices, the driver should write bytes of Offset according to OffsetSizeInBytes.
In case of failure, the driver should return BytesWritten and BytesRead as accurately as possible.
For Windows 10 version 2004, a write operation is only allowed for MCCS I2C address of 0x6E. All other operations will be blocked until a later OS release when access control is added.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 10, version 2004 |
Header | dispmprt.h |