正好需要对WINDOWS的WDDM有所了解, 于是就翻了下MSDN.
微软对设备驱动的框架设计非常周全.
无论WDDM, AVSTREAM, 还是USB STACK, STORAGE, 以及其它技术类型的设备驱动, 都是以port/miniport, class/miniclass的形式展开, 微软将经过严密设计,开发,测试的port/class驱动提供给IHV,而IHV只需要把工作重心放到mini驱动的开发上去, 大大降低了项目风险, 人力成本,以及时间成本.
AVSTREAM是PCTV的框架, 通过微软设计的FILTER(factory), PIN(factory)来组建具体设备的的Graph/Topology.
IHV只需要开发基于KS.sys miniport驱动程序.
USB stack则更加展示了port/miniport的优势, 对于usb1.1的OHCI, UHCI及usb2.0的EHCI, 它们都基于usbport.sys驱动运行, 免去了大量重复相同的开发工作(对于微软自己来讲).
usb3.0 stack并未延用原来的usbport.sys, 原因主要在于, 从2.0到3.0完全放弃了原来的EHCI的接口规范, 采用了xHCI的标准, 将任务的调度工作由CPU转交给xHC, 这是USB子系统的一大进步.
WDDM也类似, DirectX graphics kernel subsystem集成了port驱动的应有功能, 同时负责了显存管理与GPU的调度任务, 将与底层硬件无关的工作尽可能地抽离, 大大降低了display miniport driver的开发工作.
为了了解WDDM的相关内容, 先从WDDM1.3的新内容开始.
具体请参照:
http://msdn.microsoft.com/en-us/library/dn265512(v=vs.85).aspx