DXGK_DSI_TRANSMISSION 结构 (dispmprt.h)
DXGK_DSI_TRANSMISSION 结构用于将显示串行接口 (DSI) 数据包传输到总线驱动程序 (图形内核) 。
语法
typedef struct _DXGK_DSI_TRANSMISSION {
UINT TotalBufferSize;
BYTE PacketCount;
BYTE FailedPacket;
struct {
WORD TransmissionMode : 2;
WORD ReportMipiErrors : 1;
WORD ClearMipiErrors : 1;
WORD SecondaryPort : 1;
WORD ManufacturingMode : 1;
WORD Reserved : 10;
};
WORD ReadWordCount;
WORD FinalCommandExtraPayload;
WORD MipiErrors;
WORD HostErrors;
DXGK_DSI_PACKET Packets[1];
} DXGK_DSI_TRANSMISSION, *PDXGK_DSI_TRANSMISSION;
成员
TotalBufferSize
整个结构中的字节数,包括标头、命令和有效负载。
PacketCount
数据包数组中的DXGK_DSI_PACKET元素数。
FailedPacket
数据包数组中出现错误的DXGK_DSI_PACKET索引(如果已知)。 如果不知道或没有检测到数据包错误,则设置DXGK_DSI_INVALID_PACKET_INDEX值。
TransmissionMode
DXGK_MIPI_CONTROL_TRANSMISSIONMODE值之一。
ReportMipiErrors
如果已设置,图形驱动程序应在最终命令确认中请求任何累积的 MIPI 错误,并在“MipiErrors”字段中报告这些错误。
ClearMipiErrors
如果已设置,并且图形驱动程序已发送任何非 OEM 面板启动的命令,则驱动程序应确保在开始发送此序列之前清除所有累积的 MIPI 错误。
SecondaryPort
设置是否应将传输发送到辅助面板,而不是主要面板。
ManufacturingMode
设置为在系统处于制造模式时关闭 DCS 命令的 OS 验证。
Reserved
保留。
ReadWordCount
FinalCommandExtraPayload
MipiErrors
以下可能的错误值的组合,指示与外围设备通信报告的错误。
DXGK_MIPI_DSI_XXX错误 | 含义 |
---|---|
DXGK_MIPI_DSI_SOT_ERROR | High-Speed 传输引线序列的启动中可能出现的错误 |
DXGK_MIPI_DSI_SOT_SYNC_ERROR | High-Speed 传输引线序列的开始错误 |
DXGK_MIPI_DSI_EOT_SYNC_ERROR | 在 High-Speed 传输中检测到外围设备未完成的字节数 |
DXGK_MIPI_DSI_ESCAPE_MODE_ENTRY_COMMAND_ERROR | 错误或外围设备无法识别转义序列 |
DXGK_MIPI_DSI_LOW_POWER_TRANSMIT_SYNC_ERROR | 在 Low-Speed 传输中检测到外围设备未完成的字节数 |
DXGK_MIPI_DSI_FALSE_CONTROL_ERROR | 在转义序列或转弯序列中检测到外围错误 |
DXGK_MIPI_DSI_CONTENTION_DETECTED | 检测到争用 |
DXGK_MIPI_DSI_CHECKSUM_ERROR_CORRECTED | 检测到并更正了校验和错误 |
DXGK_MIPI_DSI_CHECKSUM_ERROR_NOT_CORRECTED | 检测到校验和错误,但无法更正 |
DXGK_MIPI_DSI_LONG_PACKET_PAYLOAD_CHECKSUM_ERROR | 长数据包的有效负载校验和不正确 |
DXGK_MIPI_DSI_DSI_DATA_TYPE_NOT_RECOGNIZED | 外围设备无法识别发送到它的数据类型 |
DXGK_MIPI_DSI_DSI_VC_ID_INVALID | 外围设备已为它不支持的虚拟通道发送了命令 |
DXGK_MIPI_DSI_INVALID_TRANSMISSION_LENGTH | 外围设备检测到传输的字节数与标头中指定的字节数不匹配 |
DXGK_MIPI_DSI_DSI_PROTOCOL_VIOLATION | 外围设备检测到传输上缺少 EoTP,或主机未能发出信号总线转机进行读取 |
HostErrors
DXGK_HOST_DSI_XXX错误的组合,指示图形驱动程序或 OS 报告的错误。
DXGK_HOST_DSI_XXX错误 | 含义 |
---|---|
DXGK_HOST_DSI_DEVICE_NOT_READY | 主机检测到已对设备发出请求,该设备未处于正确状态,无法接收请求。 |
DXGK_HOST_DSI_INTERFACE_RESET | 图形驱动程序检测到一个错误,需要通过面板重置 DSI 接口。 面板驱动程序应在恢复正常传输之前验证设备状态。 |
DXGK_HOST_DSI_DEVICE_RESET | 图形驱动程序检测到一个错误,需要重置面板,应假定状态已丢失。 面板驱动程序应在恢复正常传输之前重新应用任何专用设备状态。 |
DXGK_HOST_DSI_TRANSMISSION_CANCELLED | 主机取消了正在进行的传输,因为高优先级传输(如像素刷新)需要总线。 面板驱动程序需要确保在继续传输之前,已撤消或验证部分传输可能产生的任何影响。 如果此错误频繁发生,则可能意味着传输太大,无法可靠地完成,应更改面板驱动程序以将其拆分为多个传输。 |
DXGK_HOST_DSI_TRANSMISSION_DROPPED | 主机在启动传输之前删除了传输,因为较高的优先级传输导致传输延迟超过允许的限制。 面板驱动程序可以再次尝试相同的传输(如果它仍然相关)。 此错误表示 DSI 链路带宽不足,因此不应在零售环境中发生。 如果传输足够大,这可能表示需要拆分传输才能可靠地成功。 |
DXGK_HOST_DSI_TRANSMISSION_TIMEOUT | 主机在与外围设备通信时检测到硬件超时。 面板驱动程序需要确保在继续传输之前,已撤消或验证部分传输可能产生的任何影响。 除非传输导致面板进入错误状态,否则面板驱动程序中没有对此的缓解措施,因此应回退并尝试恢复。 |
DXGK_HOST_DSI_INVALID_TRANSMISSION | DXGK_DSI_TRANSMISSION缓冲区的 OS 验证发现错误,因此传输被取消,而无需调用图形驱动程序或检查禁止的数据包。 这是由 OEM 面板驱动程序中的错误或 OS 验证引起的。 如果错误特定于数据包,则 FailedPacket 字段指示第一个错误数据包。 |
DXGK_HOST_DSI_OS_REJECTED_PACKET | OS 发现了禁止的数据包,因此无需调用图形驱动程序即可取消传输。 字段 FailedPacket 指示第一个错误数据包。 |
DXGK_HOST_DSI_DRIVER_REJECTED_PACKET | 图形驱动程序发现了无法安全处理的数据包,因此无需任何外围设备交互即可取消传输。 字段 FailedPacket 指示第一个错误数据包。 |
DXGK_HOST_DSI_BAD_TRANSMISSION_MODE | 图形驱动程序无法使用指定的DXGK_DSI_CONTROL_TRANSMISSION_MODE。 字段 FailedPacket 指示与传输模式不兼容的第一个数据包。 |
Packets[1]
DSI_PACKET结构的数组。
注解
DXGK_DSI_TRANSMISSION 结构提供给图形驱动程序的 DxgkDsiTransmission 回调函数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 版本 2004 |
标头 | dispmprt.h |