windows显示驱动开发-间接显示驱动程序

间接显示驱动程序 (IDD) 模型是一种简单的用户模式驱动程序模型,用于支持未连接到 GPU 显示输出的监视器。 需要 IDD 的一些典型方案包括:

  • 通过网络将显示输出流式传输到远程客户端(远程显示器);
  • 为虚拟桌面环境(虚拟显示器)等应用程序创建虚拟监视器;
  • 通过 USB 将硬件保护装置连接到具有常规监视器(VGA、DVI、HDMI、DP 等)的电脑;
IDD 实现

IDD 是设备的第三方提供的 UMDF 驱动程序。 可以使用 IddCx(间接显示驱动程序类 eXtension)公开的功能开发 IDD,以下列方式与 Windows 图形子系统进行交互:

  • 创建表示间接显示设备的图形适配器。
  • 报告监视器与系统的连接和断开。
  • 提供所连接监视器的说明。
  • 提供可用的显示模式。
  • 支持其他显示功能,例如硬件鼠标光标、伽马、I2C 通信和受保护内容。
  • 处理桌面图像以在显示器上显示。

由于 IDD 是 UMDF 驱动程序,因此它还负责实现所有 UMDF 功能,例如设备通信、电源管理、即插即用等。

IDD 在会话 0 中运行,用户会话中没有运行任何组件,因此任何驱动程序不稳定都不会影响整个系统的稳定性。

下图提供了体系结构概述:

用户模式模型

IDD 是仅用户模式模型,不支持内核模式组件。 因此,驱动程序可以使用任何 DirectX API 来处理桌面图像。 事实上,IddCx 提供了在 DirectX 图面中编码的桌面图像。

驱动程序不应调用不适合驱动程序使用的用户模式 API,例如 GDI、窗口化 API、OpenGL 或 Vulkan。

IDD 应生成为通用 Windows 驱动程序,以便在多个 Windows 平台上使用。

在生成时:

UMDF IDD 声明了它所针对的 IddCx 版本。

OS 可确保在加载驱动程序时加载正确版本的 IddCx。

IddCx 回调和函数命名约定
Prefix 类型 备注
EVT_IDD_CX_XXX IDD 回调函数 IDD 实现特定于 IddCx 的回调,例如 EVT_IDD_CX_ADAPTER_COMMIT_MODES,以及相关的 WDF 回调(如 EVT_WDF_DEVICE_D0_EXIT)。
IddCx Xxx 函数 IDD 可以调用的系统提供的 IddCx 类扩展函数;
PFN_IDDCX _XXX 指向 IddCx 函数的指针 IDD 不使用这些指针。 相反,驱动程序使用等效的 IddCx Xxx 函数。
相关推荐
阿拉斯攀登1 天前
第 19 篇 驱动性能优化与功耗优化实战
android·驱动开发·瑞芯微·嵌入式驱动·安卓驱动
道一云黑板报1 天前
技术拆解:AI低代码架构设计与全链路落地实现
人工智能·驱动开发·低代码·ai·企业微信·ai编程·代码规范
LXY_BUAA1 天前
《嵌入式操作系统》_高级字符设备驱动_20260316
linux·运维·服务器·驱动开发
春日见1 天前
Matlab快速入门 基础语法教学
java·开发语言·驱动开发·matlab·docker·计算机外设
阿拉斯攀登1 天前
第 20 篇 RK 平台 NPU / 硬件编解码驱动适配与安卓调用
android·驱动开发·瑞芯微·rk安卓驱动
路溪非溪1 天前
Linux下iw工具的使用总结
linux·网络·arm开发·驱动开发
17(无规则自律)2 天前
【Linux驱动实战】:最简单的内核模块
linux·c语言·驱动开发·嵌入式硬件
阿拉斯攀登2 天前
第 12 篇 RK 平台安卓驱动实战 5:SPI 设备驱动开发,以 SPI 屏 / Flash 为例
android·驱动开发·rk3568·瑞芯微·嵌入式驱动·安卓驱动·spi 设备驱动
路溪非溪2 天前
关于Linux中的日志问题
linux·arm开发·驱动开发
Saniffer_SH2 天前
【高清视频】AI服务器调试利器:PCIe功耗分析设备 Quarch PAM 深度解析
网络·人工智能·驱动开发·嵌入式硬件·测试工具·计算机外设·压力测试