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

如果已设置,则通过 AUX 读取操作执行 DP I2C。

Write

如果已设置,则通过 AUX 写入操作执行 DP I2C。

EDDCMode

如果设置, 则 I2CAddress 中的设备是增强型显示数据通道 (E-DDC) 。

OffsetSizeInBytes

偏移量(以字节为单位),用于写入非 E-DDC 设备的数据。

CanUseCachedData

如果设置,驱动程序可以使用缓存数据。

Reserved

保留值;请勿使用。

RootPortIndex

支持 DP 的连接器的索引值,用于通过 AUX 读取或写入操作执行 DP I2C。 驱动程序在之前调用 DXGKDDI_QUERYDPCAPS 时返回 GPU 上支持 DP 的连接器总数。 对 DXGKDDI_DPI2CIOTRANSMISSION 的后续调用引用 RootPortIndex 范围为 0NumRootPorts - 1 的 DP 连接器。

I2CAddress

I2C 地址。 对于 EDID,设置为 0xA0;对于 DisplayID,设置为 0xA4。

WordOffset

Word偏移量(以字节为单位)。

SegmentPointer

设置 EDDCMode 后,驱动程序应将 SegmentPointer 写入 I2C 地址0x60。 SegmentPointer 标识正在为 E-DDC 设备访问的 256 字节数据块。

Reserved1

保留值;请勿使用。

Offset

设备中 IO 的地址。

BufferSizeSupplied

数据缓冲区的大小(以字节为单位)。 BufferSizeSupplied 应大于或等于 BytesToWriteBytesToWrite 的较大值。

BytesToWrite

要为写入操作写入的字节数。

BytesToRead

读取操作要读取的字节数。

DPNativeError

从DXGKDDI_DPI2CIOTRANSMISSION返回STATUS_DEVICE_PROTOCOL_ERROR时,驱动程序可以在 其中编码有关错误的更多详细信息的字段。

BytesWritten

写入的字节数。 在发生故障时,驱动程序应尽可能准确地返回此值。

BytesRead

读取的字节数。 在发生故障时,驱动程序应尽可能准确地返回此值。

Data[1]

缓冲区包含要为写入操作写入的数据,以及/或要在其中接收读取操作的数据。

注解

设置 EDDCMode 后,驱动程序应将 WordOffset 写入 OffsetSizeInBytes

设置 EDDCMode 后, I2CAddress (0xA0 EDID 有 E-DDC 设备,0xA4 displayID) 。 在这种情况下,驱动程序应将 SegmentPointer 写入 I2C 地址0x60, 将 WordOffset 写入 I2CAddress,然后执行 IO 操作。 对于所有其他 I2C 设备,驱动程序应根据 OffsetSizeInBytes 写入 Offset 的字节。

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

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

要求

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

另请参阅

DXGKDDI_DPI2CIOTRANSMISSION

DXGKDDI_QUERYDPCAPS