DXGKDDI_DPI2CIOTRANSMISSION callback function (dispmprt.h)

The DXGKDDI_DPI2CIOTRANSMISSION callback performs DP I2C over AUX read/write operations on devices directly attached on GPU.

Syntax

DXGKDDI_DPI2CIOTRANSMISSION DxgkddiDpi2ciotransmission;

NTSTATUS DxgkddiDpi2ciotransmission(
  HANDLE Context,
  PDXGKARG_DPI2CIOTRANSMISSION pArgs
)
{...}

Parameters

Context

Context pointer provided when querying the interface.

pArgs

Pointer to a DXGKARG_DPI2CIOTRANSMISSION structure.

Return value

DXGKDDI_DPI2CIOTRANSMISSION returns STATUS_SUCCESS if it succeeds; otherwise it returns an error code such as one of the following:

Error Code Meaning
STATUS_DRIVER_INTERNAL_ERROR An internal software error occurred.
STATUS_ACCESS_DENIED The request is not supported. For Windows 10 version 2004, only I2C over AUX read is supported.
STATUS_BUFFER_TOO_SMALL The buffer is too small for the operation.
STATUS_DEVICE_HARDWARE_ERROR A hardware error occurred.
STATUS_DEVICE_POWERED_OFF The device is powered off.
STATUS_DEVICE_NOT_CONNECTED The device is not connected.
STATUS_DEVICE_PROTOCOL_ERROR An error occurred at the I2C over AUX protocol level. The driver can use DPNativeError to encode more details about the error.

Remarks

This DDI call is used to perform DP I2C over AUX read/write on devices directly attached on GPU.

For I2C, the maximum size of Data buffer in the DXGKARG_DPI2CIOTRANSMISSION structure pointed to by pArgs is 128 bytes. Combining a write operation before a read operation in a single bus transaction/cycle is supported for MCCS and other protocols. The Data buffer is of size BufferSizeSupplied, which should be greater than or equal to the larger value of BytesToWrite and BytesToRead.

Offset is the address for IO within the device. When EDDCMode is set, there are E-DDC devices at I2CAddress (0xA0 for EDID, 0xA4 for DisplayID). 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, the 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

See also

DXGKARG_DPI2CIOTRANSMISSION