DXGKDDI_DPI2CIOTRANSMISSION回调函数 (dispmprt.h)

DXGKDDI_DPI2CIOTRANSMISSION 回调通过 AUX 读取/写入作在直接附加到 GPU 上的设备上执行 DP I2C。

语法

DXGKDDI_DPI2CIOTRANSMISSION DxgkddiDpi2ciotransmission;

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

参数

Context

查询接口时提供的上下文指针。

pArgs

指向 DXGKARG_DPI2CIOTRANSMISSION 结构的指针。

返回值

DXGKDDI_DPI2CIOTRANSMISSION 如果成功,则返回STATUS_SUCCESS;否则,它将返回错误代码,例如以下代码之一:

错误代码 意义
STATUS_DRIVER_INTERNAL_ERROR 出现内部软件错误。
STATUS_ACCESS_DENIED 不支持该请求。 对于 Windows 10 版本 2004,仅支持通过 AUX 读取的 I2C。
STATUS_BUFFER_TOO_SMALL 缓冲区太小,无法执行作。
STATUS_DEVICE_HARDWARE_ERROR 发生硬件错误。
STATUS_DEVICE_POWERED_OFF 设备已关闭。
STATUS_DEVICE_NOT_CONNECTED 设备未连接。
STATUS_DEVICE_PROTOCOL_ERROR 通过 AUX 协议级别在 I2C 上出错。 驱动程序可以使用 DPNativeError 对有关错误的更多详细信息进行编码。

言论

此 DDI 调用用于在直接附加在 GPU 上的设备上通过 AUX 读取/写入执行 DP I2C。

对于 I2C,pArgs 指向的 DXGKARG_DPI2CIOTRANSMISSION 结构中 数据 缓冲区的最大大小为 128 字节。 MCCS 和其他协议支持在单个总线事务/周期中的读取作之前合并写入作。 数据 缓冲区的大小 BufferSizeSupplied,它应大于或等于 BytesToWriteBytesToRead的较大值。

偏移量 是设备中 IO 的地址。 EDDCMode 时,I2CAddress(0xA0 EDID、displayID 0xA4)有 E-DDC 设备。 驱动程序应将 SegmentPointer 写入 I2C 地址0x60,WordOffsetI2CAddress,然后执行 IO作。 对于所有其他 I2C 设备,驱动程序应根据 OffsetSizeInBytes写入 Offset 的字节数。

如果发生故障,驱动程序应尽可能准确地返回 BytesWrittenBytesRead

对于 Windows 10 版本 2004,仅允许 MCCS I2C 地址0x6E写入作。 在添加访问控制之前,将阻止所有其他作, 直到以后的 OS 版本发布。

要求

要求 价值
最低支持的客户端 Windows 10 版本 2004
标头 dispmprt.h

另请参阅

DXGKARG_DPI2CIOTRANSMISSION