Windows显示驱动开发-支持显示输出和 ACPI 事件

支持显示输出设备的 BIOS 要求

系统 BIOS 公开的显示微型端口驱动程序或 ACPI 方法支持显示输出设备配置。 调用 DxgkDdiNotifyAcpiEvent 函数以通知显示微型端口驱动程序有关 ACPI 事件的信息。 例如,当用户按下输出设备开关的键盘快捷方式时,将使用ACPI_NOTIFY_CYCLE_DISPLAY_HOTKEY通知和请求类型DXGK_ACPI_CHANGE_DISPLAY_MODE调用 DxgkDdiNotifyAcpiEvent 函数。 因此,操作系统调用 DxgkDdiRecommendFunctionalVidPn 函数来查询所选的显示输出设备。

Dispmprt.h 中定义了 ACPI 显示输出的以下别名:

  • ACPI_METHOD_DISPLAY_DOD - 枚举连接到显示适配器的所有设备。 如果集成控制器支持切换输出设备,则需要此方法。 这是 ACPI 规范定义的 DOD_ 方法的别名。
  • ACPI_METHOD_DISPLAY_DOS - 指示系统固件能够自动切换活动显示输出。 这是 ACPI 规范定义的 SOD_ 方法的别名。 下面是允许的参数:
  • ACPI_ARG_ENABLE_SWITCH_EVENT。 声明系统固件不应自动切换活动显示输出设备。 相反,它必须在与每个显示输出设备关联的状态变量中保存所需的更改,并生成显示开关事件。 操作系统可以通过调用 ACPI_METHOD_OUTPUT_DGS 方法查询设备的活动状态。
  • ACPI_ARG_ENABLE_AUTO_SWITCH。 声明系统固件应自动切换活动显示输出设备,而不与操作系统交互。 它不会生成显示开关事件。
  • ACPI_ARG_DISABLE_SWITCH_EVENT。 声明系统固件不应执行任何操作;也就是说,既不切换输出设备,也不通知操作系统。 ACPI_METHOD_OUTPUT_DGS 方法返回的值已锁定。
  • ACPI_METHOD_OUTPUT_DCS - 返回显示输出设备的状态。 这是 ACPI 规范定义的 CSD_ 方法的别名。
  • ACPI_METHOD_OUTPUT_DGS - 检查显示输出设备的状态是否处于活动状态。 这是 ACPI 规范定义的 SGD_ 方法的别名。
  • ACPI_METHOD_OUTPUT_DSS - 将显示输出设备的状态设置为活动或非活动。 这是 ACPI 规范定义的 SSD_ 方法的别名。 操作系统管理此操作以避免闪烁。
  • ACPI_METHOD_DISPLAY_GPD - 查询"文本"条目,以确定在启动时发布的视频设备。 这是 ACPI 规范定义的 DPG_ 方法的别名。
  • ACPI_METHOD_DISPLAY_SPD - 汇报确定在启动时发布的视频设备的"了解"条目。 这是 ACPI 规范定义的 DPS_ 方法的别名。
  • ACPI_METHOD_DISPLAY_VPO - 确定要实现的视频选项。 这是 ACPI 规范定义的 OPV_ 方法的别名。
外部异步事件

有关影响显示输出设备的外部异步事件,必须通知操作系统。 以下通知和相关请求类型在 Dispmprt.h 中定义,并在 DxgkDdiNotifyAcpiEvent 函数中使用。

  • ACPI_NOTIFY_CYCLE_DISPLAY_HOTKEY - 通知操作系统用户已按下循环显示键盘快捷方式。
  • ACPI_NOTIFY_NEXT_DISPLAY_HOTKEY - 通知操作系统用户已按下下一个显示键盘快捷方式。
  • ACPI_NOTIFY_PREV_DISPLAY_HOTKEY - 通知操作系统用户已按下以前的显示键盘快捷方式。

前面的通知取决于用户按下键盘快捷方式时所引发事件的处理。

以下是显示微型端口驱动程序可以向操作系统发出的请求类型。

  • DXGK_ACPI_CHANGE_DISPLAY_MODE - 请求启动对新建议的活动视频呈现网络 (VidPN) 的模式更改。
  • DXGK_ACPI_POLL_DISPLAY_CHILDREN - 请求轮询显示适配器的子级连接。

注意前面的请求是 DxgkDdiNotifyAcpiEvent 函数返回的 AcpiFlags 参数的值。

相关推荐
Lois_Luo6 小时前
关闭Win10强制所有应用以管理员身份运行
windows
luoyayun3617 小时前
实现Windows系统标题栏颜色跟随主题动态切换
windows·系统标题栏颜色·标题栏颜色
猫头虎8 小时前
如何解决 OpenClaw “Pairing required” 报错:两种官方解决方案详解
网络·windows·网络协议·macos·智能路由器·pip·scipy
呉師傅11 小时前
【使用技巧】Adobe Photoshop 2024调整缩放与布局125%后出现点菜单项漂移问题的简单处理
运维·服务器·windows·adobe·电脑·photoshop
梦帮科技12 小时前
OpenClaw 桥接调用 Windows MCP:打造你的 AI 桌面自动化助手
人工智能·windows·自动化
春日见14 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
C++ 老炮儿的技术栈14 小时前
VS2015 + Qt 实现图形化Hello World(详细步骤)
c语言·开发语言·c++·windows·qt
浩浩测试一下15 小时前
内网---> WriteOwner权限滥用
网络·汇编·windows·安全·microsoft·系统安全
一个人旅程~15 小时前
Dell n4020双系统分区步骤和linux优化操作
linux·windows·电脑
love530love15 小时前
【高阶编译】Windows 环境下强制编译 Flash Attention:绕过 CUDA 版本不匹配高阶指南
人工智能·windows·python·flash_attn·flash-attn·flash-attention·定制编译