没有合适的资源?快使用搜索试试~ 我知道了~
如何用KMDF开发驱动
5星 · 超过95%的资源 需积分: 50 79 下载量 28 浏览量
2009-02-13
19:38:31
上传
评论
收藏 295KB PDF 举报
温馨提示
本文档描述了如何用KMDF(Windows系列OS下WDF驱动开发环境的组件)开发驱动的简单示例,用于指导已熟悉KMDF的开发人员来编写第一个内核模式的驱动。本文通过几个内核模式驱动的示例来阐明WDF驱动的结构以及如何实现驱动的通用功能。 从结构组织上,本文在简单回顾KMDF的基础上,在第4章讲述如何编写基于KMDF的最小Function驱动,在第5章讲述如何编写基于KMDF的纯软件驱动,在第6章讲述如何编写基于KMDF的硬件设备驱动。
资源推荐
资源详情
资源评论
KMDF 示例
摘 要
本文档描述了如何用 KMDF(Windows 系列 OS 下 WDF 驱动开发环境的组件)开发驱
动的简单示例,用于指导已熟悉 KMDF 的开发人员来编写第一个内核模式的驱动。本文通
过几个内核模式驱动的示例来阐明 WDF 驱动的结构以及如何实现驱动的通用功能。
从结构组织上,本文在简单回顾 KMDF 的基础上,在第 4 章讲述如何编写基于 KMDF
的最小 Function 驱动,在第 5 章讲述如何编写基于 KMDF 的纯软件驱动,在第 6 章讲述如
何编写基于 KMDF 的硬件设备驱动。
由于译者水平有限,错误在所难免,请见谅。
xjtusdbzh
www.driverdevelop.com
第 1 页,共 18 页
KMDF 示例
目 录
1 简介 ..............................................................................................................................................4
2 WDF示例代码...............................................................................................................................4
2.1 按名称分类........................................................................................................................4
2.2 按设备分类........................................................................................................................4
2.3 KMDF和WDM示例的区别 ...............................................................................................5
2.4 使用宏.................................................................................................................................5
3 结构和概念...................................................................................................................................5
3.1 对象创建............................................................................................................................6
3.2 上下文区............................................................................................................................6
3.3 IO队列 ................................................................................................................................6
3.4 IO请求 ................................................................................................................................7
4 KMDF最小驱动 ............................................................................................................................7
4.1 DriverEntry .........................................................................................................................7
4.2 AddDevice...........................................................................................................................8
4.2.1 设备对象和上下文区.............................................................................................8
4.2.2 设备接口.................................................................................................................8
4.2.3 默认IO队列 ............................................................................................................9
4.3 读、写和IOCTL................................................................................................................9
5 KMDF无硬件驱动 ........................................................................................................................9
5.1 文件打开关闭.....................................................................................................................9
5.2 另外的属性.......................................................................................................................10
5.2.1 同步Scope..............................................................................................................10
5.2.2 IRQL ......................................................................................................................10
5.2.3 CleanUp .................................................................................................................10
5.2.4 设定设备对象属性...............................................................................................10
5.3 PnP和电源 ........................................................................................................................10
5.3.1 注册回调...............................................................................................................11
5.3.2 电源策略管理.......................................................................................................11
5.3.3 上电和下电的回调...............................................................................................12
5.3.4 Wake信号的回调...................................................................................................12
5.4 WMI..................................................................................................................................12
5.4.1 初始化WMI..........................................................................................................12
5.4.2 WMI实例事件的回调 ...........................................................................................12
5.4.3 触发WMI回调 ......................................................................................................12
6 KMDF硬件驱动 ..........................................................................................................................13
6.1 支持中断..........................................................................................................................13
6.1.1 创建中断对象.......................................................................................................13
6.1.2 中断使能和禁用...................................................................................................13
6.1.3 中断使能后和禁用前...........................................................................................13
6.1.4 处理中断...............................................................................................................14
6.1.5 中断的延期处理...................................................................................................14
6.2 映射资源..........................................................................................................................14
第 2 页,共 18 页
KMDF 示例
6.3 多IO队列处理IO .............................................................................................................15
6.3.1 创建和配置队列...................................................................................................15
6.3.2 处理并发请求.......................................................................................................15
6.3.3 处理BufferIO........................................................................................................16
6.3.4 转发到其他队列...................................................................................................16
6.3.5 从手动队列获得请求............................................................................................16
6.4 注册表相关......................................................................................................................16
6.5 自管理IO的WatchDog定时器.........................................................................................16
6.5.1 设备启动和重启时的自管理IO...........................................................................17
6.5.2 设备下电和被移除的自管理IO...........................................................................17
6.5.3 实现Watchdog定时器...........................................................................................17
第 3 页,共 18 页
剩余17页未读,继续阅读
zwz1984
- 粉丝: 69
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页