通过 USB4 对 DisplayPort 监视器的 WDDM 支持

本文介绍 WDDM 驱动程序如何支持从 Windows 11 (WDDM 3.0) 开始通过 USB4 连接的 DisplayPort 监视器。

要求

Windows 图形堆栈需要知道 WDDM 驱动程序在启动时支持 USB4。 在启动时,系统可以验证驱动程序是否支持所有必要的要求,如果驱动程序未提供此类支持,则驱动程序启动失败,而不是在热插拔检测时发现。

KMD) (内核模式显示驱动程序必须满足以下要求:

  1. 它必须是 WDDM 3.0 或更高版本的驱动程序。
  2. 它公开添加的适配器帽以指示 USB4 支持。
  3. 驱动程序公开的所有静态 VidPn 目标都需要报告为电源组件。
  4. 连接到同一静态目标的每个 USB4 动态目标必须连接到同一主机路由器;是其 DXGK_CONNECTION_USB4_INFOUSB4_Driver_ID 成员必须具有相同的值。 目前不支持将 USB4 DisplayPort 监视器连接到仅显示或间接显示 WDDM 驱动程序。

添加了 USB4 支持驱动程序上限

SupportUsb4Targets 上限已添加到系统在启动时从驱动程序查询的DXGK_DISPLAY_DRIVERCAPS_EXTENSION结构中。 只有 WDDM 3.0 及更高版本的驱动程序才应设置此值,并且仅当驱动程序满足前面列出的所有要求时。

报告 USB4 监视器 DisplayPort 配置数据值

DXGK_CONNECTION_CHANGE。MonitorConnect。MonitorConnectFlags已添加字段。

每当检测到连接器状态更改时,OS 会调用 KMD 的 DXGKDDI_QUERYCONNECTIONCHANGE 函数。 当 DisplayPort 监视器已连接到指定的 VidPn 目标并连接到 USB4 DP-IN 适配器时,驱动程序应:

  1. 设置 DXGK_CONNECTION_CHANGEMonitorConnectFlags.Usb4DisplayPortMonitor 标志,指示此监视器是连接 USB4 的监视器。
  2. 完成DXGKARG_QUERYCONNECTIONCHANGE中的字段pUsb4MonitorInfo

报告为 PoFx 组件的所有静态 VidPn 目标

若要在图形和 USB 堆栈之间启用正确的电源管理,驱动程序必须在DXGKARG_QUERYADAPTERINFO时通过 DxgkDdiQueryAdapterInfo 将所有静态 VidPn 目标报告为 PoFx 组件类型为DXGKQAITYPE_NUMPOWERCOMPONENTSDXGKQAITYPE_POWERCOMPONENTINFO

从同一静态 VidPn 目标创建的所有动态目标

支持连接到动态 VidPn 目标的 USB4 监视器,但连接到静态 VidPn 目标的所有 USB4 动态 VidPn 目标必须具有相同USB4_Driver_ID值,即连接到同一 USB4 主机路由器。

系统 HLK 测试

驱动程序必须通过添加到硬件实验室工具包 (HLK) 的 USB4 系统图形驱动程序支持 测试。 此测试验证在具有 USB4 的笔记本电脑上,如果 iGPU 和 dGPU) 公开任何目标, (所有图形驱动程序是否都支持 USB4 功能。