WDF driver model:
一个为UMDF,KMDF创造的面向对象,事件驱动的环境。
WDF和WDM
WDF只是WDM的抽象,其目的是一致的。
WDF处理了WDM的核心任务:接受处理IRPs,管理PnP和电源状态变化等。
WDF简介
WDF提供了一个统一的驱动模型,功能包括:
1.同时支持用户和内核模式的驱动
2.进行了良好设计:WDF驱动和对象之间有良好的接口
3.对象分层:为了简化对象生命周期管理和I/O请求同步
4.和操作系统交互的I/O模型:I/O请求流的控制,包括PnP和电源状态的响应
5.PnP和电源管理的状态管理和对其默认状态转换的处理:WDF驱动只处理和其设备相关的状态转换
WDF提供了一系列基本的对象:驱动,设备,I/O请求,队列(管理I/O请求)等;WDF驱动使用这些对象来实现功能。
对象具有接口,支持多个事件。
一些对象被framework创建,传递给驱动;另一些对象被驱动创建。
开发者的任务:组装合适的对象完成需求
一些对象生命周期长,如设备对象和队列对象;另一些瞬时对象,如I/O请求对象,在完成请求后销毁。
WDF提供了所有事件的默认处理方式
只有当默认处理方式不能满足时,开发者可以显示地注册回调函数来覆盖。
回调函数通知驱动事件发生,使驱动可以做相应的处理(opt-in event model,WDF核心的一部分)