WDDM 模型架构
2021-06-30
774
2
WDDM驱动模型架构从Windows Vista开始支持,由内核模块和应用模块组成。
微软图形显示子系统架构如下所示:
根据上图可知,我们开发WDDM驱动并不是从头开始全部,而是配合Windows已经提供的现有的显示驱动架构的基础上开发内核态的显示MiniPort驱动、用户模式的显示驱动和用于支持OpenGL的ICD驱动。
图中灰色底色的模块是我们要开发的。
从中图可知,Windows提供的图形驱动架构是一个复杂的模块,其在用户层面通过Direct3D运行时库,OpenGL运行时库和我们常用的GDI(+)提供通用的图形驱动接口。
OpenGL运行时库接口是使用我们开发的ICD驱动与gui32.dll建立起连系,并其由与Dxgknl.sys通信。
术语理解
- Dxgknl.sys: 微软DX图形内核子系统,Microsoft DirectX graphics kernel subsystem,为硬件加速,3D图形等都是高级图形提供内核实现。
- GDI :图形设备接(Graphics Device Interface)
- win32k.sys : win32k是windows二维图形的基础,其很大一部分功能是实现我们用户界面窗口图形的绘制与显示。
- Direct3D运行进库:通过Com的方式直接调用Dxgknl.sys提供的接口。
- ICD:通过与应用层的gid32.dll配合,实现OpenGL调用Dxgknl.sys的功能。
- Miniport Driver : Mini小端口驱动,在Windows强大的内核图形子系统(Dxgknl)的基础上,实现显卡硬件相关操作的实现,是显卡的硬件接口实现。
- DDI:设备驱动接口,device driver interface。