windows显示驱动开发-CCD DDI的其它技术

用于建议 VidPN 拓扑的系统调用

在运行 Windows 7 的计算机上,显示模式管理器(DMM)通过 CCD 数据库中的 VidPN 历史记录数据确定合适的 VidPN 拓扑。 DMM 不再根据最后已知的良好拓扑来确定 VidPN 拓扑,如同在 Windows Vista 中所做的那样。 因此,在 Windows 7 DMM 上,从不调用 DxgkDdiRecommendVidPnTopology 函数。

在 Windows Vista 及其服务包上,DMM 继续调用 DxgkDdiRecommendVidPnTopology 以请求驱动程序提供建议的功能 VidPN 拓扑。

ACPI 键盘快捷方式逻辑

从 Windows 7 开始,IHV 实现基于 ACPI 的特定于 OEM 的键盘快捷方式。 作系统不知道这些键盘快捷方式。 在 Windows 7 上,OEM 必须使用 CCD 数据库来存储和应用键盘快捷方式,以便作系统和任何 OEM 应用程序相互了解。

对以下函数的调用行为已更改,适用于在 Windows 7 上运行的驱动程序:

DxgkDdiNotifyAcpiEvent 和 DxgkDdiRecommendFunctionalVidPn

如果显示微型端口驱动程序收到对 DxgkDdiNotifyAcpiEvent 函数的调用,并在 AcpiFlags 参数中设置DXGK_ACPI_CHANGE_DISPLAY_MODE标志,DMM 将调用 DxgkDdiRecommendFunctionalVidPn 函数以获取新的 VidPN,并与当前客户端 VidPN 进行比较。 如果两个 VidPN 的拓扑相同,DMM 不会修改新的 VidPN。 否则,DMM 会从 VidPN 中删除模式信息,只保留拓扑,并允许 CCD 数据库确定给定拓扑的模式。 然后,DMM 基于新的 VidPN 设置显示配置。

D3DKMTInvalidateActiveVidPn

Windows Vista 及更高版本支持此函数,用于显示具有版本 < DXGKDDI_INTERFACE_VERSION_WIN7的微型端口驱动程序。 函数行为与 Windows Vista 上的行为相同。

在 Windows 7 及更高版本中,版本 >= DXGKDDI_INTERFACE_VERSION_WIN7 的显示微型端口驱动程序不支持此功能。 如果调用,则返回状态代码STATUS_NOT_SUPPORTED。

查询 VidPN 硬件功能

从 Windows 7 开始,需要显示微型端口驱动程序来报告指定功能 VidPN 的所有硬件功能。 驱动程序应支持以下回调函数及其关联结构:

DxgkDdiQueryVidPnHWCapability 函数

DXGKARG_QUERYVIDPNHWCAPABILITY 结构

D3DKMDT_VIDPN_HW_CAPABILITY 结构

当驱动程序报告硬件功能时,应考虑克隆是作为旋转或缩放转换的一部分完成的隐式过程:必须先克隆源,然后才能进行轮换或缩放。

如果D3DKMDT_VIDPN_HW_CAPABILITY的任何成员对指定的 VidPN 路径没有任何意义,则如果成员设置为非零值,则显示模式管理器 (DMM) 将不会报告任何错误。 DMM 将清除所有此类值,然后再将其报告给用户模式客户端。 但是,驱动程序需要将 D3DKMDT_VIDPN_HW_CAPABILITY 的 Reserved 成员的值设置为 0。

相关推荐
祭曦念1 小时前
【共创季稿事节】鸿蒙原生 ArkTS 布局实践:List + onReachStart/End 分页加载完全指南
windows·list·harmonyos
Shacoray1 小时前
Mac 向 Windows 局域网传文件方案整理
windows·macos
C+++Python10 小时前
详细介绍一下Java泛型的通配符
java·windows·python
能喵烧香10 小时前
深度解析:Linux 与 Windows 超级权限账户的本质差异
linux·windows
caimouse14 小时前
Reactos 第 7 章 视窗报文 — 7.5 视窗报文的发送
windows
IT 行者18 小时前
GitHub Spec Kit 实战(六):/speckit.implement 怎么用、怎么审、怎么发现 spec 阶段的遗漏——五部曲收官
java·驱动开发·github·ai编程·claude
callJJ19 小时前
Volta + Claude Code 在 Windows 上的路径 Bug 复盘
windows·bug
女神下凡19 小时前
这是 Cursor(Composer) 的五种核心交互模式
服务器·人工智能·windows·vscode·microsoft
techdashen19 小时前
从 Windows 的 ping.exe 入手:动态库、调用约定与 Rust FFI
开发语言·windows·rust