共用方式為


DXGK_DSI_TRANSMISSION結構(dispmprt.h)

DXGK_DSI_TRANSMISSION結構可用來將顯示序列介面 (DSI) 封包傳輸至總線驅動程式(圖形核心)。

語法

typedef struct _DXGK_DSI_TRANSMISSION {
  UINT            TotalBufferSize;
  BYTE            PacketCount;
  BYTE            FailedPacket;
  struct {
    WORD TransmissionMode : 2;
    WORD ReportMipiErrors : 1;
    WORD ClearMipiErrors : 1;
    WORD SecondaryPort : 1;
    WORD ManufacturingMode : 1;
    WORD Reserved : 10;
  };
  WORD            ReadWordCount;
  WORD            FinalCommandExtraPayload;
  WORD            MipiErrors;
  WORD            HostErrors;
  DXGK_DSI_PACKET Packets[1];
} DXGK_DSI_TRANSMISSION, *PDXGK_DSI_TRANSMISSION;

成員

TotalBufferSize

整個結構中的位元組數目,包括標頭、命令和承載。

PacketCount

Packets 陣列中的 DXGK_DSI_PACKET 項目數目。

FailedPacket

已知在 Packets 陣列中發生錯誤的DXGK_DSI_PACKET索引。 如果不知道或沒有偵測到的封包錯誤,則會設定值DXGK_DSI_INVALID_PACKET_INDEX。

TransmissionMode

其中一個DXGK_MIPI_CONTROL_TRANSMISSIONMODE值。

ReportMipiErrors

如果已設定,圖形驅動程式應該在最終命令通知中要求任何累積的MIPI錯誤,並在[MipiErrors]字段中回報這些錯誤。

ClearMipiErrors

如果 set 和圖形驅動程式已傳送任何非 OEM 面板起始的命令,驅動程式應該先確定在開始傳送此序列之前,會先清除任何累積的 MIPI 錯誤。

SecondaryPort

設定是否應該將傳輸傳送至次要面板,而不是主要面板。

ManufacturingMode

設定為在系統處於製造模式時關閉DCS命令的OS驗證。

Reserved

保留。

ReadWordCount

FinalCommandExtraPayload

MipiErrors

下列可能錯誤值的組合,表示與周邊通訊所報告的錯誤。

DXGK_MIPI_DSI_XXX錯誤 意義
DXGK_MIPI_DSI_SOT_ERROR High-Speed 傳輸領導者序列的開始可能發生錯誤
DXGK_MIPI_DSI_SOT_SYNC_ERROR High-Speed 傳輸領導者序列的開始錯誤
DXGK_MIPI_DSI_EOT_SYNC_ERROR 周邊偵測到傳輸 High-Speed 位元組不完整
DXGK_MIPI_DSI_ESCAPE_MODE_ENTRY_COMMAND_ERROR 錯誤或周邊無法辨識逸出序列
DXGK_MIPI_DSI_LOW_POWER_TRANSMIT_SYNC_ERROR 周邊偵測到傳輸 Low-Speed 位元組不完整
DXGK_MIPI_DSI_FALSE_CONTROL_ERROR 在逸出序列或回合序列中偵測到周邊錯誤
DXGK_MIPI_DSI_CONTENTION_DETECTED 偵測到爭用
DXGK_MIPI_DSI_CHECKSUM_ERROR_CORRECTED 偵測到總和檢查碼錯誤並更正
DXGK_MIPI_DSI_CHECKSUM_ERROR_NOT_CORRECTED 偵測到總和檢查碼錯誤,但無法更正
DXGK_MIPI_DSI_LONG_PACKET_PAYLOAD_CHECKSUM_ERROR 長封包的承載總和檢查碼不正確
DXGK_MIPI_DSI_DSI_DATA_TYPE_NOT_RECOGNIZED 周邊無法辨識傳送至它的數據類型
DXGK_MIPI_DSI_DSI_VC_ID_INVALID 周邊已針對不支援的虛擬通道傳送命令
DXGK_MIPI_DSI_INVALID_TRANSMISSION_LENGTH 周邊偵測到傳輸的位元組數目與標頭中指定的位元組數目不符
DXGK_MIPI_DSI_DSI_PROTOCOL_VIOLATION 周邊偵測到傳輸或主機上缺少 EoTP,無法發出讀取的匯流轉機訊號

HostErrors

DXGK_HOST_DSI_XXX錯誤的組合,指出圖形驅動程式或 OS 所報告的錯誤。

DXGK_HOST_DSI_XXX錯誤 意義
DXGK_HOST_DSI_DEVICE_NOT_READY 主機偵測到已對狀態不正確的裝置提出要求,無法接收要求。
DXGK_HOST_DSI_INTERFACE_RESET 圖形驅動程式偵測到需要使用面板重設 DSI 介面的錯誤。 面板驅動程式應該先確認裝置狀態,再繼續正常傳輸。
DXGK_HOST_DSI_DEVICE_RESET 圖形驅動程式偵測到需要重設面板和狀態的錯誤,應該假設已遺失。 面板驅動程式應該在繼續正常傳輸之前,重新套用任何私人裝置狀態。
DXGK_HOST_DSI_TRANSMISSION_CANCELLED 主機已取消傳輸,因為總線需要較高的優先順序傳輸,例如圖元重新整理。 面板驅動程式需要確保部分傳輸可能具有的任何影響都已復原或驗證,然後再繼續進行傳輸。 如果此錯誤經常發生,可能表示傳輸太大而無法可靠地完成,而面板驅動程式應該變更為將其分割成多個傳輸。
DXGK_HOST_DSI_TRANSMISSION_DROPPED 主機在啟動之前卸載傳輸,因為較高的優先順序傳輸導致傳輸延遲超過允許的限制。 如果面板驅動程式仍然相關,面板驅動程式可以再次嘗試相同的傳輸。 此錯誤表示 DSI 連結頻寬不足,因此不應該發生在零售環境中。 如果傳輸夠大,這可能表示必須分割傳輸才能可靠地成功。
DXGK_HOST_DSI_TRANSMISSION_TIMEOUT 主機在與周邊通訊時偵測到硬體逾時。 面板驅動程式需要確保部分傳輸可能具有的任何影響都已復原或驗證,然後再繼續進行傳輸。 除非傳輸造成面板進入不良狀態,否則面板驅動程式中不會有此風險降低,因此應該會退後並嘗試繼續。
DXGK_HOST_DSI_INVALID_TRANSMISSION DXGK_DSI_TRANSMISSION緩衝區的 OS 驗證發現錯誤,因此傳輸已取消,而不需要呼叫圖形驅動程式或檢查禁止的封包。 這是由 OEM 面板驅動程式或 OS 驗證中的錯誤所造成。 如果錯誤是封包特有的,則 FailedPacket 字段會指出第一個錯誤的封包。
DXGK_HOST_DSI_OS_REJECTED_PACKET OS 發現禁止的封包,因此傳輸被取消,而不呼叫圖形驅動程式。 [FailedPacket] 欄位表示第一個錯誤的封包。
DXGK_HOST_DSI_DRIVER_REJECTED_PACKET 圖形驅動程式找到無法安全地處理的封包,因此傳輸已取消,而不需要任何周邊互動。 [FailedPacket] 欄位表示第一個錯誤的封包。
DXGK_HOST_DSI_BAD_TRANSMISSION_MODE 圖形驅動程序無法使用指定的DXGK_DSI_CONTROL_TRANSMISSION_MODE。 [FailedPacket] 字段表示第一個封包與傳輸模式不相容。

Packets[1]

DSI_PACKET 結構的陣列。

言論

DXGK_DSI_TRANSMISSION結構會提供給圖形驅動程式的 DxgkDsiTransmission 回呼函式。

要求

要求 價值
最低支援的用戶端 Windows 10 版本 2004
標頭 dispmprt.h

另請參閱

DXGK_DSI_PACKET

**IOCTL_MIPI_DSI_QUERY_CAPS

IOCTL_MIPI_DSI_RESET

IOCTL_MIPI_DSI_TRANSMISSION