windows显示驱动开发-用于连接和配置的接口(二)

路径优先顺序

SetDisplayConfig CCD 函数确定按 pathArray 参数指定的路径数组中的活动路径进行排序,以便 SetDisplayConfig 为较低的数组路径元素提供更高的优先级。 以下项会影响排序:

如果 SetDisplayConfig 找不到现有的显示配置, 则 SetDisplayConfig 在搜索顺序的最佳模式逻辑中使用路径优先级。 因此,SetDisplayConfig 更可能在本机分辨率下满足高优先级的路径,而非低优先级路径。

在克隆路径中,优先级最高的路径是计划翻转的路径。 因此,优先级较低的路径可能会发生轻微的撕裂现象。

DirectX 图形内核子系统利用路径优先级(连同 GDI 主视图)来派生路径重要性值,并将该值传递给显示微型端口驱动程序调用中的 D3DKMDT_VIDPN_PRESENT_PATH 结构的 ImportanceOrdinal 成员。 路径重要性值会影响驱动程序决策,例如驱动程序应在资源分配中优先选择的路径。 例如,低序号路径可能能够更好地访问叠加层或更高质量的控制器。

QueryDisplayConfig CCD 函数始终按优先级顺序返回路径。 如果在 QueryDisplayConfig 的 Flags 参数中设置了QDC_ALL_PATHS标志,QueryDisplayConfig 将返回 pPathInfoArray 参数指定的路径数组中的所有活动路径组合之后的所有非活动路径组合。

桌面布局

调用方在对 SetDisplayConfig CCD 函数的调用中使用 DISPLAYCONFIG_SOURCE_MODE 结构的 position 成员来控制桌面上源图面的排列。 位置成员指定源图面左上角桌面坐标中的位置。 定位在 (0, 0) 处的源图面被视为主图面。 GDI 具有有关如何在桌面空间中排列源图面的严格规则。 例如,GDI 不允许源图面之间的任何间隙,也不允许在源图面中重叠。

尽管 SetDisplayConfig 尝试重新排列源图面以强制实施这些 GDI 布局规则,但调用方应指定源图面的布局。 未定义 GDI 如何重新排列源图面以强制实施其布局规则,而源图面的结果布局可能不是调用方想要实现的。

模式信息与路径信息之间的关系

连接和配置 (CCD) QueryDisplayConfig 函数始终返回特定显示配置的路径信息以及源模式和目标模式信息。 下图显示了未设置 DISPLAYCONFIG_PATH_SUPPORT_VIRTUAL_MODE 时源和目标模式信息与路径信息的关系的示例;也就是说,当路径不识别虚拟时。 在此示例中,QDC_ALL_PATHS标志在对 QueryDisplayConfig 的调用中传递给 Flags 参数。

从 Windows 10 开始, DISPLAYCONFIG_PATH_INFO、 DISPLAYCONFIG_PATH_SOURCE_INFO和 DISPLAYCONFIG_PATH_TARGET_INFO 结构将更新为支持虚拟感知的路径:

  • DISPLAYCONFIG_PATH_SUPPORT_VIRTUAL_MODE标志已添加为标志值。 设置此标志时,它指示路径支持虚拟模式。
  • 在DISPLAYCONFIG_PATH_SOURCE_INFO中增加了一个联合体。 仅当未设置添加的标志时,才使用 modeInfoIdx 成员。 设置标志时,模式信息位于 cloneGroupId 和 sourceModeInfoIdx 成员中。
  • 向DISPLAYCONFIG_PATH_TARGET_INFO添加了一个联合体。 仅当未设置添加的标志时,才使用 modeInfoIdx 成员。 设置标志后,模式信息位于 desktopModeInfoIdx 和 targetModeInfoIdx 成员中。
相关推荐
手揽回忆怎么睡4 小时前
win11显卡NVIDIA GeForce GTX 1660的ComfyUI_windows_portable_nvidia_cu126的节点包安装不上
windows
AxureMost4 小时前
Windows系统调校 20260324 系统优化工具
windows
NGBQ121384 小时前
ZBrush-2026.0.0-x64-CN-Portable.exe 全解析:Windows 端专业数字雕刻与绘画软件深度指南
windows·数字雕刻·zbrush
牧天白衣.4 小时前
01-集合高级
windows
特立独行的猫a5 小时前
OpenHarmony海思WS63星闪平台:Opus 音频编解码库介绍与海思 WS63 平台移植
驱动开发·移植·openharmony·星闪·opus·ws63
the sun345 小时前
从Ubuntu迁移到QEMU驱动开发
linux·驱动开发·ubuntu
残雪飞扬6 小时前
Ubuntu上安装 WinBoat(让linux上运行windows软件)
linux·windows·ubuntu
特立独行的猫a6 小时前
OpenHarmony海思WS63星闪平台:EasyLogger 移植到海思 WS63 平台完整指南
驱动开发·openharmony·ws63·hi3863·easylogger
图灵机z6 小时前
【操作系统】四、进程管理
linux·服务器·网络·windows·macos·centos·risc-v
soldierluo7 小时前
openclaw接入企业微信
服务器·人工智能·windows·企业微信