DXGK_DSI_PACKET-Struktur (dispmprt.h)
Ein OEM-Paneltreiber verwendet DXGK_DSI_PACKET Strukturen, um DSI-Pakete (Digital Serial Interface) an den Bustreiber (Grafikkern) zu übertragen.
Syntax
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;
Member
DataId
8-Bit-Wert, wobei die unteren 6 Bits den DataType und die höheren 2 Bits VirtualChannel bilden.
DataType
Art der übertragenen Daten, die implizit die Transaktion als Lese- oder Schreibvorgang sowie die Anzahl der Parameter definiert und ob die Transaktion als kurzes oder langes Paket gebildet wird.
VirtualChannel
Gibt die Untereinheit des adressierten Peripheriegeräts an. Kann einer von 0, 1, 2 oder 3 sein.
Data0
8-Bit-Wert, der in kurzen Paketen zum Übertragen von Parametern verwendet wird. Kurze Pakete haben 0, 1 oder 2 Byte an Parametern, wobei die Anzahl und Bedeutung durch den Datentyp bestimmt wird.
Data1
8-Bit-Wert, der in kurzen Paketen zum Übertragen von Parametern verwendet wird. Kurze Pakete haben 0, 1 oder 2 Byte an Parametern, wobei die Anzahl und Bedeutung durch den Datentyp bestimmt wird.
LongWriteWordCount
Word Anzahl der Nutzlast für ein langes Schreibpaket in Bytes.
EccFiller
Ein 8-Bit-Feld, das den Platz einnimmt, den der Fehlerkorrekturcode (Error Correction Code, ECC) in der Sequenz der übertragenen Bytes einnimmt. Das vierte Byte der Übertragung ist immer ein ECC, und bei langen Schreibvorgängen folgt die Nutzlast direkt dem ECC, sodass dieser Filler ermöglicht, einen langen Schreibbefehl im Arbeitsspeicher als vollständigen Befehl zu erstellen. Es liegt in der Verantwortung des Grafiktreibers, den Füllwert vor der Übertragung mit dem richtigen ECC-Wert zu überschreiben.
Payload[DXGK_DSI_PACKET_EMBEDDED_PAYLOAD_SIZE]
Array von 8 Bytes, das das Senden von Sequenzen von kleinen Schreibvorgängen als Array von Paketen in derselben Übertragung ermöglicht, aber die Größe der Daten begrenzt. Das endgültige Paket in einer Übertragung kann direkt nach dem letzten Byte der eingebetteten Nutzlast weitere Daten im Arbeitsspeicher anfügen. Lesepakete sind nur als letzte in einer Übertragung zulässig, können aber in Form eines langen oder kurzen Pakets vorliegen. In beiden Richtungen sollten die Lesedaten im Nutzlastpuffer platziert werden, wobei zusätzlicher Speicherplatz im Puffer vorhanden ist, um längere Antworten zu ermöglichen.
Hinweise
Der Paneltreiber ruft IOCTL_MIPI_DSI_TRANSMISSION mit einem Array von DSI_PACKET-Strukturen in einer DXGK_DSI_TRANSMISSION-Struktur auf.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10, Version 2004 |
Kopfzeile | dispmprt.h |