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

Offset 位移大小,以位元組為單位,以位元組為單位寫入非 E-DDC 裝置的數據。

CanUseCachedData

如果設定,驅動程式可以使用快取的數據。

Reserved

保留;請勿使用 。

RootPortIndex

可透過 AUX 讀取或寫入作業執行 DP I2C 之 DP 支援連接器的索引值。 驅動程式在呼叫 DXGKDDI_QUERYDPCAPS 之前,傳回 GPU 上支援 DP 的連接器總數。 後續 DXGKDDI_DPI2CIOTRANSMISSION 呼叫會參考 具有 RootPortIndex 的 DP 連接器,範圍從 0NumRootPorts - 1

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、 WordOffsetI2CAddress,然後執行 IO 作業。 對於所有其他 I2C 裝置,驅動程式應該根據 OffsetSizeInBytes 來寫入 Offset 的位元元組。

如果失敗,驅動程式應該儘可能正確傳回 BytesWrittenBytesRead

針對 Windows 10 2004 版,只有0X6E的 MCCS I2C 位址才允許寫入作業。 所有其他作業都會遭到封鎖,直到新增訪問控制之後的OS版本為止。

規格需求

需求
最低支援的用戶端 Windows 10 (版本 2004)
標頭 dispmprt.h

另請參閱

DXGKDDI_DPI2CIOTRANSMISSION

DXGKDDI_QUERYDPCAPS