从 Windows 8 开始,镜像驱动程序将不会安装在系统上。 本部分所述的镜像驱动程序仅在早期版本的 Windows 上安装和运行。
但是,从Windows 8开始,向想要在
辅助技术
中为残障或残障客户提供镜像驱动程序功能的开发人员,可以使用特殊的 GDI 辅助功能驱动程序模型。 若要了解有关此特殊驱动程序模型的详细信息,请联系
[email protected]
。
基于 镜像 驱动程序体系结构的
远程显示驱动程序
模型也可以从 Windows 8 开始运行,但在 Windows 10 版本 2004 中已删除。 有关详细信息,请参阅
远程显示驱动程序
。
从Windows 10起,不再建议将 GDI 辅助功能驱动程序用于新产品,Microsoft 将在未来的操作系统版本中删除支持。 Windows 10版本 2004 中已删除对 GDI 远程显示驱动程序的支持。 但是,通过构建自定义远程
协议提供程序
和
间接显示驱动程序
,仍可以创建远程显示解决方案。
镜像驱动程序说明
镜像驱动程序
是虚拟设备的显示驱动程序,它镜像一个或多个其他物理显示设备的绘图操作。 它是实现的,其行为非常类似于任何其他显示驱动程序;但是,与典型的微型端口驱动程序相比,其配对的视频微型端口驱动程序最小。 有关
镜像系统中微型端口驱动程序的详细信息,请参阅视频微型端口驱动程序 (Windows 2000 型号)
中的镜像驱动程序支持。 Windows 驱动程序工具包 (WDK) Windows 7 版本 (版本 7600) 包含一个示例镜像驱动程序,其中包括包含在三个目录中的组件源文件。
包含的源文件
GDI 支持
虚拟桌面
,并提供在镜像设备上复制部分虚拟桌面的功能。 GDI 将虚拟桌面实现为物理显示驱动程序层上方的图形层。 所有绘图操作都从此虚拟桌面空间开始;GDI 剪辑并呈现在虚拟桌面中存在的相应物理显示设备上。
镜像设备可以在虚拟桌面中指定任意
剪辑区域
,包括跨多个物理显示设备的剪辑区域。 然后,GDI 向镜像设备发送与该驱动程序的剪辑区域相交的所有绘图操作。 镜像设备可以设置与特定物理设备完全匹配的剪辑区域;因此,它可以有效地镜像该设备。
在 Windows 2000 及更高版本中,镜像驱动程序的剪辑区域必须包含主显示设备。
在 Windows Vista 及更高版本中,桌面 Windows 管理器 (DWM) 将在加载镜像驱动程序时关闭。
镜像
驱动程序代码示例演示如何实现镜像驱动程序。 有关可帮助你了解示例的详细信息,请参阅:
使用示例 INF 文件
镜像.inf
作为模板。 有关详细信息
,请参阅镜像驱动程序 INF 文件
。
请参阅
mirror.exe
应用程序,该应用程序演示了如何将 镜像 驱动程序附加到虚拟桌面。 有关详细信息
,请参阅镜像驱动程序安装
。
有关使用 Win32
EnumDisplayDevices
函数的信息,请参阅 Windows SDK 文档。 使用此函数来确定与镜像显示设备关联的
\\.\Display#
名称。 更改镜像设备的设置需要此编号。 对于多个实例,
#
是每个实例的不同数字;因此必须通过循环访问可用的显示设备来确定此数字。
将镜像设备附加到全局桌面
将REG_DWORD注册表项
Attach.ToDesktop
添加到驱动程序的服务项。
将此键的条目设置为 1 (一个) 。
若要禁用镜像驱动程序,请将此项设置为 0 (零) 。
如前所述,驱动程序在位于设备层上方的绘图层中安装并运行。 由于镜像驱动程序的坐标空间是桌面坐标空间,因此它可以跨多个设备。 如果镜像驱动程序旨在镜像主显示器,则其显示坐标应与主显示器的桌面坐标一致。
安装 镜像 驱动程序后,将为与驱动程序的显示区域相交的所有呈现操作调用该驱动程序。 在
多监视器系统上
,如果镜像驱动程序仅与主显示设备重叠,这可能不包括所有绘图操作。
建议使用用户模式服务来维护镜像驱动程序的设置。 此应用程序可确保驱动程序在启动时正确加载,并且可以通过WM_DISPLAYCHANGE消息获取显示更改通知,从而对桌面的更改做出适当的响应。
GDI 为与驱动程序边界矩形相交的任何 2D 图形 DDI 绘制操作调用镜像驱动程序。 请注意,如果图面是设备格式位图,则 GDI 不会检查执行边框;也就是说,如果
SURFOBJ
的
iType
为 STYPE_DEVBITMAP。
与往常一样,必须在不使用全局变量的情况下实现镜像驱动程序。 该特定驱动程序的所有状态都必须存在于
PDEV
中。 GDI 将为视频微型端口驱动程序创建的每个硬件设备扩展调用
DrvEnablePDEV
。
镜像驱动程序不应支持 DirectDraw。
镜像驱动程序必须在
DEVINFO
结构的
flGraphicsCaps
成员中将GCAPS_LAYERED标志设置为
TRUE
。
辅助功能镜像驱动程序必须在
DEVINFO
结构的
flGraphicsCaps2
成员中将GCAPS2_EXCLUDELAYERED和GCAPS2_INCLUDEAPIBITMAPS标志设置为
TRUE
。
镜像驱动程序可以选择通过实现
DrvRealizeBrush
来支持画笔实现。
GDI 允许同一驱动程序在单监视器和多监视器系统上运行。 多监视器系统中的驱动程序只需跟踪其在全局桌面中的位置。 每当发生 Win32
ChangeDisplaySettings
调用时,例如当用户使用 控制面板 中的显示程序动态更改监视器在桌面中的位置时,GDI 会向驱动程序提供此位置。 发生此类更改时,GDI 相应地更新
DEVMODEW
结构的
dmPosition
成员。 驱动程序可以通过实现
DrvNotify
来接收此类更改的通知。 有关详细信息
,请参阅镜像驱动程序安装
。
当在客户端上以这种准确度呈现时,镜像驱动程序不需要以像素完美的精度进行渲染。 例如,接收镜像图像的适配器/监视器不需要呈现
网格相交量化
(GIQ) 线条绘制和多边形填充,其精度与镜像适配器/监视器相同。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:
https://aka.ms/ContentUserFeedback
。
提交和查看相关反馈