设备驱动程序设计WDM驱动程序简介第二讲WindowsXP驱动程序分类内核模式驱动程序的属性可移植性:源代码级可移植可配置性:避免对硬件特征和系统设置作绝对假设;避免在代码中直接引用硬件可抢先性和可中断性多处理器安全基于对象数据包驱动异步WindowsXP系统结构WDM驱动程序模型WDM模型主要包含以下内容:1、描述了设备驱动程序的标准结构和应该完成的主要功能
2、描述了操作系统为设备驱动提供的各种服务,以及操作系统与设备驱动程序之间详细的交互过程3、为常见类型的设备提供一系列的总线驱动程序和类驱动程序
WDM驱动程序的分类功能驱动:每个WDM驱动都包含功能驱动;它了解使硬件工作的所有细节,负责具体I/O过程,负责处理中断事件,为用户提供一种设备适合的控制方式
总线驱动:查找并发现硬件设备,确定设备的资源使用情况,管理硬件与计算机的实际连接,负责物理的I/O过程过滤器驱动:对功能驱动程序执行I/O操作时进行过滤和监视,修改现有功能驱动程序的行为,为用户提供额外服务类驱动:实现某种设备类型的共通功能,管理整个设备类的基本特征,规范该类设备与操作系统中其它软件环境的接口
采用类驱动有利于分层和功能重用
迷你驱动:包含在类驱动中,用于管理设备实例的厂商专有特征例程
类驱动和迷你驱动合在一起才构成一个完整的功能驱动程序
WDM驱动的层次结构上层过滤器驱动程序功能驱动程序下层过滤器驱动程序总线驱动程序IRP包驱动程序如何工作驱动程序是一个收集让操作系统调用的用来执行各种涉及到硬件操作的子程序的容器
一些例程,如DriverEntry和AddDevice例程和一些特定的I/O请求包(IRP)的处理函数会出现在每个这样的容器中
需要排队请求的驱动程序可能还有一个StartIo例程
而执行直接存储器存取(DMA)操作的驱动程序会有一个AdapterControl例程