Enterprise Just Builder

Solution for Enterprise Software Architecture

WDF 驱动程序开发

设备驱动程序是硬件设备连接到计算机系统的软件接口,任何设备都必须有相应的驱动程序才能在计算机系统上正常工作。设备驱动程序的优劣直接关系到整个系统的性能和稳定性,因此,设计和开发稳定高效的驱动程序具有重要意义。 WDF (Windows Driver Foundation) 是微软新一代驱动程序模型,它在 WDM (Windows Driver Model) 的基础上发展而来,支持面向对象、事件驱动的驱动程序开发,提供了比 WDM 更高层次的抽象,是高度灵活、可扩展、可诊断的驱动程序框架。WDF 框架接管了驱动和操作系统内核的大多数交互,驱动和操作系统的交互交给框架内封装的方法(函数)完成,从而对二者进行了隔离,这样驱动开发者只需专注处理硬件的行为即可。另外 WDF 还将大多数驱动中都需要处理的 PnP (即插即用)和电源管理封装进了框架,成为了公用的驱动程序功能。 WDF 可以开发内核模式的驱动程序, 也可以开发用户模式的驱动程序,二者采用同一套对象模型构建,即 WDF。对于内核模式和用户模式对象来说,WDF 是它们的父对象。换言之两者都是从 WDF 派生而来的。针对内核模式派生出的对象称为 KMDF;针对于户模式派生出的对象称为 UMDF。无论何种模式的框架,其内部封装的方法、执行的行为其实还是用 WDM 完成的。 本文主要讨论 KMDF 框架。 KMDF 对象模型 KMDF 驱动程序模型支持面向对象、事件驱动。它定义了一系列的对象用于表示设备、驱动、中断等,每个对象有其相应的属性、方法和事件。驱动程序利用这些方法创建对象、设置属性和响应事件。该框架定义的主要对象有: WDFDRIVER 对象:对应于 WDM 中的 DRIVER_OBJECT。用来描述驱动在内存中的实例,包括加载的位置、相关的属性和所管理的设备。 WDFDEVICE 对象:对应于 WDM 中的 DEVICE_OBJECT。用来描述由驱动程序管理的单个设备实例,设备可以是命名的也可以是未命名的。引用程序可以通过设备接口或设备名称访问设备。WDFDEVICE 对象具有丰富的属性,比如 PnP 和电源管理相关的事件处理回调函数(callbacks)。 WDFREQUEST 对象: 对应于 WDM 中的 IRP,表示一个 […]

, , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.