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 쓰기 긴 패킷에 대한 페이로드의 개수(바이트)입니다.
EccFiller
ECC(오류 수정 코드)가 전송된 바이트 시퀀스에서 사용하는 공간을 차지하는 8비트 필드입니다. 전송의 네 번째 바이트는 항상 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 |