다음을 통해 공유


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

추가 정보

**IOCTL_MIPI_DSI_QUERY_CAPS

IOCTL_MIPI_DSI_RESET

IOCTL_MIPI_DSI_TRANSMISSION