早期的Win3.1,Win9x设备驱动是vxd,Win NT是kdm, Win2k 统一发展成wdm模式。
我们知道之前我们叫XPDM,那是Windows Vista之前的显示驱动模型,Vista使用的WDDM1.0,Win7使用的1.1,Win8使用的1.2,这个方面微软一直在增强,比如视频加速,3D加速等等。我们不去谈XPDM,从WDDM开始说起。
先来看一张图。
这里关于驱动的就是一个用户模式的驱动和一个显示的小端口驱动。
这张图讲解了WDDM整个的设计模型,意思就是以后WINDOWS系统的图形硬件厂商必须提供一个用户模式驱动和一个内核模式的显示的小端口驱动程序。用户模式驱动以一个DLL的形式存在,Direct3D服务会调用它。显示的小端口驱动和DirectX的图形内核子系统进行交互。
WDDM跟XDDM相比,有哪些改进的地方。
1,大量的代码从内核模式迁移到用户模式,更加安全,更加稳定。
2,Direct3D服务和DirectX图形子系统处理了大部分的图形图像相关的任务,显存管理,GPU任务管理。
3,接口的创建工作使用非常少的内核模式驱动的时间。
4,创建和销毁接口的资源锁,上锁和解锁成对使用。
5,显存,系统内核,接口管理,句柄的管理都属于操作系统。
6,渲染操作在用户模式驱动中执行。你必须用try/except在用户模式的驱动代码中,处理错误应用返回因公程序进程。
7,后台处理更容易在用户模式中执行。