DXGKDDI_DPI2CIOTRANSMISSION回呼函式 (dispmprt.h)
DXGKDDI_DPI2CIOTRANSMISSION回呼會在直接連結 GPU 的裝置上,透過 AUX 讀取/寫入作業執行 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 | I2C 上的 AUX 通訊協定層級發生錯誤。 驅動程式可以使用 DPNativeError 來編碼錯誤的詳細數據。 |
備註
此 DDI 呼叫可用來在直接連結於 GPU 上的裝置上,透過 AUX 讀取/寫入執行 DP I2C。
針對 I2C,pArgs 所指向DXGKARG_DPI2CIOTRANSMISSION結構中的數據緩衝區大小上限為 128 個字節。 MCCS 和其他通訊協定支援在單一總線交易/週期中的讀取作業之前合併寫入作業。 數據緩衝區的大小為 BufferSizeSupplied,應該大於或等於 BytesToWrite 和 BytesToRead 的較大值。
位移 是裝置內IO的位址。 設定 EDDCMode 時, I2CAddress (0xA0 有適用於EDID的E-DDC裝置,0xA4 DisplayID) 。 驅動程序應該將 SegmentPointer 寫入 I2C 位址0x60、 WordOffset 到 I2CAddress ,然後執行 IO 作業。 對於所有其他 I2C 裝置,驅動程式應該根據 OffsetSizeInBytes 來寫入 Offset 的位元元組。
如果失敗,驅動程式應該儘可能正確傳回 BytesWritten 和 BytesRead 。
對於 Windows 10 2004 版,只有 MCCS I2C 位址0x6E才允許寫入作業。 所有其他作業都會遭到封鎖,直到新增訪問控制之後的OS版本為止。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 (版本 2004) |
標頭 | dispmprt.h |