DXGK_DSI_PACKET結構 (dispmprt.h)
OEM 面板驅動程式會使用 DXGK_DSI_PACKET 結構,將數位序列介面 (DSI) 封包傳輸到總線驅動程式 (圖形核心) 。
語法
typedef struct _DXGK_DSI_PACKET {
union {
BYTE DataId;
struct {
BYTE DataType : 6;
BYTE VirtualChannel : 2;
};
};
union {
struct {
BYTE Data0;
BYTE Data1;
};
WORD LongWriteWordCount;
};
BYTE EccFiller;
BYTE Payload[DXGK_DSI_PACKET_EMBEDDED_PAYLOAD_SIZE];
} DXGK_DSI_PACKET, *PDXGK_DSI_PACKET;
成員
DataId
8 位值,其中較低的6位形成DataType,而較高的2位是 VirtualChannel。
DataType
要傳輸的數據類型,其會隱含地將交易定義為讀取或寫入,以及參數數目,以及交易的格式是短或長封包。
VirtualChannel
指出所尋址周邊的子單位。 可以是 0、1、2 或 3 的其中一個。
Data0
簡短封包中使用的8位值,用來傳輸參數。 簡短封包具有 0、1 或 2 個字節的參數,其中數位和意義是由 DataType 決定。
Data1
簡短封包中使用的8位值,用來傳輸參數。 簡短封包具有 0、1 或 2 個字節的參數,其中數位和意義是由 DataType 決定。
LongWriteWordCount
Word 寫入長封包的Payload計數,以位元組為單位。
EccFiller
8 位欄位元段,佔用錯誤更正碼 (ECC) 將採用傳輸位元組序列的空間。 傳輸的第四個字節一律是 ECC,而且對於長時間寫入,承載會直接遵循 ECC,因此此填入作業允許在記憶體中建構長寫入命令作為完整命令。 在傳輸之前,圖形驅動程序必須負責以正確的 ECC 值覆寫填滿值。
Payload[DXGK_DSI_PACKET_EMBEDDED_PAYLOAD_SIZE]
8 個字節的陣列,允許以相同傳輸中的封包陣列的形式傳送小型寫入序列,但會限制數據的大小。 傳輸中的最後一個封包可以直接在內嵌承載的最後一個字節之後,在記憶體中附加進一步的數據。 讀取封包只允許作為傳輸中的最後一個封包,但可能是長封包或短封包的形式,而讀取數據應該放在承載緩衝區中,並在緩衝區中加上額外的空間以容納較長的回應。
備註
面板 驅動程式會以 DXGK_DSI_TRANSMISSION結構中的 DSI_PACKET 結構數位呼叫 IOCTL_MIPI_DSI_TRANSMISSION 。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 (版本 2004) |
標頭 | dispmprt.h |