认识一下WDF
2015-10-27 11:57
218 查看
概念
WDF(Windows Driver Framework, Windows驱动框架)包含UMDF(User Mode Driver Framework, 用户模式驱动框架)和KMDF(Kernel Mode Driver Framework, 内核模式驱动框架)。内容概括:
WDF是基于对象的框架,它包含:驱动对象、设备对象、IO请求对象、队列对象、目标对象等。框架管理对象的生命周期。
框架为对象提供上下文空间、同步锁等手段,使容易安全的操作对象。
框架提供PME(Property/Method/Event)编程接口,它们的样子像Wdfxxx(),都是WDF框架提供的编程接口,把那些函数叫做“框架DDI接口”。
WDF封装了WDM,它实现了PNP与电源管理状态机,开发者只要提供简单的PNP与电源事件回调就能实现想要的功能。
WDF可以简便处理IO请求,使用IO请求对象能实现异步、同步处理,取消请求处理也很容易。通过IO队列,能实现多个IO请求串行、并行和手动处理,支持PNP和电源管理。
框架与其它模块的交互
内核对用户程序是透明的,用户程序不知道内核,用户程序通过Win32 API或更高级的用户层API跟WDF内核驱动交互。用户程序使用CreateFile与CloseHandle来打开关闭句柄,使用ReadFile、WriteFile和DeviceIoControl进行IO操作。内核将收到用户程序的请求封装成IRP,再将IRP发给对应设备处理,并对设备处理的结果进行处理。
WDF框架就是一个内核库形式的WDM驱动,提供DDI接口给WDF驱动。WDF实现了各种IRP命令的分发函数。
WDF最大作用是实现对象模块、IO模块和PNP电源模块。
WDF能兼容不同的windows系统,同一个代码,不需要修改或者修改很少,就可以编译出支持不同windows系统的驱动。
相关文章推荐
- iPhone设备相关
- 填充磁盘空间的工具和方法
- Masonry -- 使用纯代码进行iOS应用的autolayout自适应布局
- php.ini配置文件详解(为了安全,禁止一些高风险的函数)
- 嵌入式开发人才的未来发展方向
- android技术集合
- iOS中另外一种多线程实现方式NSOperation
- 配置静态文件缓存
- java动态代理(JDK和cglib)
- 技术博客记录
- 你的阅读造就了你 You are what you read
- Intent传递对象的两种方法
- ORA-12170: TNS: 连接超时解决方法(10g、11g都可用)
- 百度手机卫士,简单粗暴至极(关于Stagefright高危漏洞)
- Git一套简流
- 9个Java性能优化工具汇总
- (转)python 优先队列
- TCP同步与异步及阻塞模式,多线程+阻塞模式,非阻塞模式简单介绍
- 21-读《人生》有感
- unity5.X 中的全局光照技术详解(建议收藏)