WDM驱动程序简介

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最后,用户拔出设备或者关闭系统,这时,系统发 送一些IRP,分发例程做好相应的处理,然后返回, 系统把驱动程序代码移出内存。
来自百度文库
应用程序与驱动的交互
应用程序里面要做的工作首先就是要调用 CreatFile 打开设备,具体操作就像打开一个 文件一样。
应用程序准备好相应的数据或者缓冲区等, 调用相应的WIN32 API如WriteFile,ReadFile, DeviceIoControl等,对设备进行读写等各种 操作。
基本特征,规范该类设备与操作系统中其它软件环境的接 口。采用类驱动有利于分层和功能重用。
迷你驱动:包含在类驱动中,用于管理设备实例的厂商专有
特征例程。类驱动和迷你驱动合在一起才构成一个完整的 功能驱动程序。
IRP包
WDM驱动的层次结构
上层过滤器驱动程序 功能驱动程序
下层过滤器驱动程序 总线驱动程序
sys和exe
像EXE程序一样,驱动程序也是可执行文件。其扩 展名为.SYS
在结构上严格地说驱动程序和任何32位的Windows 或者控制台的应用程序没什么区别。和EXE程序一 样,一个驱动程序也需要许多辅助程序,许多也都 是动态链接自操作系统内核或来自一组驱动或者其 他的支持库。
但是驱动程序没有主程序。取而代之的是其包含了 一批系统可以在适当的时候调用的子程序集。驱动 程序除了其自己的硬件外不关心任何别的事情:系 统管理了其他的任何事务,包括决定在何时运行你 的驱动程序代码。
最后应用程序关闭设备,具体操作就像关闭 一个文件一样 。
设备驱动程序设计
第二讲
WDM驱动程序简介
Windows XP 驱动程序分类
内核模式驱动程序的属性
可移植性:源代码级可移植 可配置性:避免对硬件特征和系统设置作绝对假
设;避免在代码中直接引用硬件
可抢先性和可中断性 多处理器安全 基于对象 数据包驱动 异步
Windows XP 系统结构
驱动程序如何工作
驱动程序是一个收集让操作系统调用的用来执行各 种涉及到硬件操作的子程序的容器。
一些例程,如DriverEntry和AddDevice例程和一些 特定的I/O 请求包(IRP)的处理函数会出现在每个 这样的容器中 。
需要排队请求的驱动程序可能还有一个StartIo例程。 而执行直接存储器存取(DMA)操作的驱动程序 会有一个AdapterControl例程。产生硬件中断的驱 动程序也会有一个中断服务例程(ISR)和一个延 迟过程调用(DPC)例程
即插即用管理器发送给驱动程序一些IRP,相应的 IRP处理函数处理完该IRP之后返回。
一个应用程序打开了设备,因此系统发送给驱动另 一个IRP,处理函数进行了少量的操作之后返回
操作系统与驱动的交互过程
应用程序尝试读取或者写入一些数据,因此系统发 送一个IRP,处理例程将IRP放入一个队列之后返回。
工作的所有细节,负责具体I/O过程,负责处理中断事件, 为用户提供一种设备适合的控制方式。
总线驱动:查找并发现硬件设备,确定设备的资源使用情况,
管理硬件与计算机的实际连接,负责物理的I/O过程
过滤器驱动:对功能驱动程序执行I/O操作时进行过滤和监
视,修改现有功能驱动程序的行为,为用户提供额外服务
类驱动:实现某种设备类型的共通功能,管理整个设备类的
WDM驱动程序模型
WDM模型主要包含以下内容:
1、描述了设备驱动程序的标准结构和应该完成的主 要功能。
2、描述了操作系统为设备驱动提供的各种服务,以 及操作系统与设备驱动程序之间详细的交互过程
3、为常见类型的设备提供一系列的总线驱动程序和 类驱动程序。
WDM驱动程序的分类
功能驱动:每个WDM驱动都包含功能驱动;它了解使硬件
操作系统与驱动的交互过程
系统运行时设备插入或者系统重新启动发现了某个 设备,系统就会装载可执行的驱动程序到内存中, 并且调用其DriverEntry例程。DriveEntry做了一些 初始化操作之后返回。
即插即用管理器(PnP Manager)调用AddDevice例 程,让其做一些与设备实例相关的初始化操作之后 返回。
某些I/O操作引发设备中断,中断服务例程做一些 很少的操作,然后请求一个DPC,之后返回。
DPC例程运行了,它可能要读回数据,或者继续下 一次的写操作等,然后开始下一个排在队列中的 IRP,之后DPC例程返回系统。
随着时间变化,在这期间系统会发送各种IRP给驱 动程序,驱动程序进行相应的处理。
相关文档
最新文档