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

另请参阅

DXGK_DSI_PACKET

**IOCTL_MIPI_DSI_QUERY_CAPS

IOCTL_MIPI_DSI_RESET

IOCTL_MIPI_DSI_TRANSMISSION