WDDM概述

Windows图形驱动程序由IHV(英特尔、NVIDIA、AMD、高通、PowerVR、VIA、Matrox等)实现并维护,是非常丰富的驱动程序。支持基本回退(基本渲染、基本显示),实现最低限度的驱动功能,还支持虚拟化(VMware、Virtual Box、Parallels驱动程序)、远程桌面方案(XenDesktop、RDP等)、虚拟显示(intelligraphics、extramon等)。

WDDM(Windows Display Driver Model)分为用户模式内核模式,移动到用户模式是为了稳定性和可靠性。

Windows图形驱动_Windows图形驱动

用户模式和内核模式组件之间的通信。

vista之前的大部分蓝屏都是由图形驱动程序(来自MSDN):“在Windows XP中,大型复杂的显示驱动程序可能是系统不稳定的主要原因。这些驱动程序完全在内核模式下执行(即深入系统代码),因此,驱动程序中的一个问题通常会迫使整个系统重新启动。根据在Windows XP时间段内收集的故障分析数据,显示驱动程序占所有蓝屏的20%。”

在大多数进程中,用户模式部分作为dll的一部分运行,仍然可以访问表面(编码器/解码器、二进制植入、某些API可能部分(或间接)暴露于远程访问表面(例如WebGL)。下图显示了支持WDDM所需的体系结构。

Windows图形驱动_Windows图形驱动_02

Windows图形驱动_Windows图形驱动_03


Windows的驱动模型演变历史如下:

  • Windows XP:XPDM。
  • Windows Vista:WDDM 1.0、DWM和Aero。


Windows图形驱动_Windows图形驱动_04

  • 没有DWM和有dWM的对比。因为DWM处理桌面的合成,所以当每个程序都必须跟踪自己的显示时,新功能就不可用了,任务栏中的Aero Peek,Aero Glass可在最上面的窗口后查看应用程序,能够轻松改变方向,许多新的Windows动画都依赖于DWM,包括“收缩到任务栏”效果。
  • Windows 7:WDDM 1.1,扩展DWM。
  • Windows 8:WDDM 1.2,删除XPDM支持。
  • Windows 8.1:WDDM 1.3。
  • Windows 10:WDDM 2.0。