共用方式為


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

封包陣列中的DXGK_DSI_PACKET元素數目。

FailedPacket

在封包陣列中已知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