estrutura DXGK_DSI_PACKET (dispmprt.h)

Um driver de painel OEM usa estruturas DXGK_DSI_PACKET para transmitir pacotes de DSI (Interface Serial Digital) para o driver de barramento (kernel gráfico).

Sintaxe

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;

Membros

DataId

Valor de 8 bits, em que os 6 bits inferiores formam o DataType e os 2 bits mais altos são VirtualChannel.

DataType

Tipo de dados sendo transmitidos, que define implicitamente a transação como uma leitura ou gravação, bem como o número de parâmetros e se a transação é formada como um pacote curto ou longo.

VirtualChannel

Indica a sub unitário do periférico que está sendo endereçado. Pode ser um de 0, 1, 2 ou 3.

Data0

Valor de 8 bits usado em pacotes curtos para transferir parâmetros. Os pacotes curtos têm 0, 1 ou 2 bytes de parâmetros, em que o número e o significado são determinados pelo DataType.

Data1

Valor de 8 bits usado em pacotes curtos para transferir parâmetros. Os pacotes curtos têm 0, 1 ou 2 bytes de parâmetros, em que o número e o significado são determinados pelo DataType.

LongWriteWordCount

Word contagem, em bytes, do conteúdo de um pacote longo de gravação.

EccFiller

Um campo de 8 bits que ocupa o espaço que o ECC (Código de Correção de Erro) ocupará na sequência de bytes transmitidos. O quarto byte da transmissão é sempre um ECC e, para gravações longas, o conteúdo segue diretamente o ECC para que esse preenchimento permita que um comando de gravação longa seja construído na memória como um comando completo. É responsabilidade do driver gráfico substituir o valor do preenchimento pelo valor correto do ECC antes da transmissão.

Payload[DXGK_DSI_PACKET_EMBEDDED_PAYLOAD_SIZE]

Matriz de 8 bytes que permite que sequências de gravações pequenas sejam enviadas como uma matriz de pacotes na mesma transmissão, mas limita o tamanho dos dados. O pacote final em uma transmissão pode acrescentar mais dados na memória diretamente após o último byte da carga inserida. Os pacotes de leitura são permitidos apenas como o último em uma transmissão, mas podem estar na forma de um pacote longo ou curto e, de qualquer forma, os dados de leitura devem ser colocados no buffer de Carga, com espaço extra no buffer para acomodar respostas mais longas.

Comentários

O driver do painel chama IOCTL_MIPI_DSI_TRANSMISSION com uma matriz de estruturas DSI_PACKET em uma estrutura DXGK_DSI_TRANSMISSION .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 2004
Cabeçalho dispmprt.h

Confira também

**IOCTL_MIPI_DSI_QUERY_CAPS

IOCTL_MIPI_DSI_RESET

IOCTL_MIPI_DSI_TRANSMISSION