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 成员中。
相关推荐
qq_3692243313 天前
Windows全系通用!ntdll.dll文件丢失、报错、闪退问题的完整排查与修复教程
windows·dll·dll修复·dll丢失·dll错误
阿米亚波13 天前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm
世微 如初13 天前
AP5125大功率LED恒流驱动实战:地摊灯项目从原理图到调试笔记
驱动开发·芯片·led电源驱动·降压恒流ic
caimouse13 天前
Reactos 第 10 章 网络操作 — 10.3.1 NIC驱动
网络·windows
ScilogyHunter13 天前
Zephyr串口驱动开发及构建完全指南
驱动开发·uart·zephyr
初圣魔门首席弟子13 天前
Node.js 详细介绍(知识库版)
windows·qt·node.js·知识库
_Emma_13 天前
【DRM&Graphic】Linux图形与显示框架
linux·驱动开发·图形渲染·显示器
董厂长13 天前
Loop Engineering:停止手动提示,开始设计自动提示的系统
大数据·人工智能·驱动开发·llm
CHENG-JustDoIt13 天前
AI工具 | 爆火开源项目Odysseus AI 工作台:从项目介绍、部署情况及其使用等多方位分析指南(含详细步骤)
大数据·人工智能·windows·python·ai·开源·github
kingbal13 天前
Windows:flutter环境搭建
windows·flutter