структура 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
8-разрядное поле, которое занимает пространство, которое код исправления ошибок (ECC) будет принимать в последовательности передаваемых байтов. Четвертый байт передачи всегда является ECC, а для длительных операций записи полезные данные непосредственно следуют за ECC, поэтому этот заполнитель позволяет создать в памяти команду long write в качестве полной команды. Графический драйвер обязан перезаписать значение заполнителя правильным значением ECC перед передачей.
Payload[DXGK_DSI_PACKET_EMBEDDED_PAYLOAD_SIZE]
Массив 8 байт, который позволяет отправлять последовательности небольших операций записи в виде массива пакетов в той же передаче, но ограничивает размер данных. Последний пакет в передаче может добавлять дополнительные данные в память сразу после последнего байта внедренных полезных данных. Чтение пакетов разрешено только в качестве последнего пакета в передаче, но может быть в виде длинного или короткого пакета, и в любом случае считываемые данные должны быть помещены в буфер полезных данных с дополнительным пространством в буфере для размещения более длительных ответов.
Комментарии
Драйвер панели вызывает IOCTL_MIPI_DSI_TRANSMISSION с массивом DSI_PACKET структур в DXGK_DSI_TRANSMISSION структуре.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 версии 2004 |
Верхняя часть | dispmprt.h |