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,它应大于或等于 BytesToWrite 和 BytesToRead的较大值。
偏移量 是设备中 IO 的地址。 EDDCMode 时,I2CAddress(0xA0 EDID、displayID 0xA4)有 E-DDC 设备。 驱动程序应将 SegmentPointer 写入 I2C 地址0x60,WordOffsetI2CAddress,然后执行 IO作。 对于所有其他 I2C 设备,驱动程序应根据 OffsetSizeInBytes写入 Offset 的字节数。
如果发生故障,驱动程序应尽可能准确地返回 BytesWritten 和 BytesRead。
对于 Windows 10 版本 2004,仅允许 MCCS I2C 地址0x6E写入作。 在添加访问控制之前,将阻止所有其他作, 直到以后的 OS 版本发布。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 10 版本 2004 |
标头 | dispmprt.h |