WDF 体系统构
2022-03-30
136
0
Windows操作系统系列的下一代驱动程序模型是WDF,这相模型相当于以前的WDM架构,可以减少驱动程序的开发时间,实现更好的系统稳定性,提高驱动程序的适应性。
WDF提供了两种类型的框架:
- KMDF(Kernel Mode Driver FrameWord,内核模式驱动程序框架)实现了Windows必须的基本内核模式擦去啊动程序支持功能,这些功能是所有内核模式驱动程序的公共功能。
- UMDF(User Mode Driver FrameWork,用户模式驱动程序架构)提供了与KMDF类似的功能支持,但是允许类设备的驱动程序不在内核模式中运行,而是在用户模式中运行。
为什么要用WDF,WDM有什么不足
编写Windows驱动程序并非易事。当前的内核模式驱动程序开发模型——WDM相当复杂,有严重的局限性。
WDM要求所设计的驱动程序能够管理与操作系统的交互,而不仅仅是与设备硬件的交互。 即使是一个简单的WDM驱动程序也要包含几千行代码,而其中的多数代码完成的不过是每个 驱动程序必须支持的公共功能。WDM驱动程序必须使用从操作系统内核直接导出的设备驱动程 序接口(DDI)设计。这些接口的目的是为了提高性能,而不是易用。在许多情况下,DDI直接 将操作系统的核心数据结构公开给驱动程序,从而增加了驱动程序错误造成系统崩遗或损坏的几率。
对于某些类型的设备,端口/微型端口模型实现占了许多WDM代码。但是Windows支持十儿 种这样的模型,而且每种模型都是不同的。所以编写一类设备的微型端口驱动程序时获得的知识, 在编写另一类设备的微型端口驱动程序时不一定适用。
WDF的优势及设计目录
与内核模式驱动程序不同,用户模式驱动程序没有WDM的公共基础设施。
WDF模型的主要设计原则如下所述。
- 将驱动程序模型与核心操作系统组件分开。
- 为某些类型的设备提供用户模式选项
- 实现公共和默认驱动程序功能,以便驱动程序开发人员能将注意力集中在自己的硬件上。
- 使驱动程序成为事件驱动的,并定义事件的详细信息,以简化驱动程序的任务。
- 所有驱动程序支持即插即用和电源管理实现。
- 用户模式和内核模式的驱动程序采用统一的安装过程。
- 提供集成的工具(包括内置的跟踪和验证支持),帮助你在调试期间和发布之后寻找和诊断问题。
- 支持一个驱动程序二进制文件与多个版本的框架和操作系统协同工作。
题外话
其实这里可对照WDM是Win32 API开发一个应用程序,而WDF是对WDM的封装成MFC。这样关于系统交互的操作都交给WDF提供的库或函数