基于windows下数据卡过滤器驱动研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于windows下数据卡过滤器驱动研究

数据卡过滤器驱动研究 目录 1 Windows XP I/O请求处理结构 3 2 WDM驱动程序模型体系设备和驱动程序的层次结构 4 3过滤器驱动程序介绍 6 4 过滤器驱动程序设计 7 4.1 WDM 驱动程序初始化——DriverEntry() 7 4.1.1请见高通驱动程序的设备初始化DriverEntry()分析 8 4.2 AddDevice()函数分析 9 4.2.1请见高通驱动程序的设备初始化AddDevice()分析 10 4.3 派遣例程 12 4.4 Unload 例程功能 12 5 数据卡过滤驱动配置方案 13 5.1过滤驱动切换设备模式原理简述 13 6 过滤驱动安装 14 6.1 预安装驱动 14 6.2配置相关标志位 14 6.2.1配置设备实例键下的参数 14 6.2.2配置Service下键值 15 7过滤驱动卸载 16 7.1移除Mass Storage Device对应的注册表中的实例项 16 7.2还原注册表键值 16 8 学习总结 17 注释: 17 摘 要:WDM是微软公司为Windows设计的一种通用的驱动程序模型。过滤器驱动程序作为其中一类特殊的驱动程序,可以在不更改现有驱动程序的情况下,方便地修改、增加现有驱动程序的功能。本文在介绍过滤器驱动程序功能的基础上,重点介绍了其实现的关键技术,并给出了部分参考程序。关键词:WDM;过滤器驱动程序; I/O(Windows Driver Mode)是微软公司为Windows的驱动程序设计的一种通用的驱动程序模型。相比以前的KDM和VXD来说,他的性能更高、系统之间移植更加方便。所以,随着系统的升级,WDM已经成为Windows 2000WindowsXP系统下驱动程序开发的主流。作为WDM模型之中一类特殊的驱动程序,过滤器驱动程序(Filter driver)可以在不更改现有驱动程序的情况下,方便地修改、增加现有驱动程序的功能。特别是对于Windows 2000WindowsXP系统已经提供了通用驱动程序的硬件设备,通过编写过滤器驱动程序,可以以较小的代价扩展硬件现有的功能。因此具有很强的实际应用价值。 1 Windows XP I/O请求处理结构如图1所示,Windows是分态的操作系统。应用程序运行在用户,用户态程序只能调用Win32子系统提供的API来同设备交互,驱动程序一般通过硬件抽象层来和硬件交互,从而完成I/O请求工作。驱动程序完成I/O操作后,他将调用一个特殊的内核服务例程来完成IRP。这时,I/O管理器把数据和结果返回给Win32和用户应用程序。 2 WDM驱动程序模型体系设备和驱动程序的层次结构Windows驱动程序模型重新定义驱动程序分层堆栈。设备对象是系统为帮助软件管理硬件而创建的数据结构。一个物理硬件可以有多个这样的数据结构。处于堆栈最底层的设备对象称为物理设备对象PDO(PhysicalDevice Object),代表了设备和总线之间的连接。在设备对象堆栈的中间的对象称为功能设备对象FDO(FunctionalDevice Object),代表了设备的功能。在FDO的上面和下面还会有一些过滤器设备对象FIDO(Filter Device Object)。位于FDO上面的过滤器设备对象称为上层过滤器,位于FDO下面(但仍在PDO之上)的过滤器设备对象称为下层过滤器。 驱动程序负责枚举他的总线,这意味着发现总线上的全部设备和检测设备何时被添加或删除并为每个设备创建一个PDO。创建完PDO后,PnP管理器参照注册表中的信息查找与这个PDO相关的过滤器和功能驱动程序,它们出现在图的中部。系统安装程序负责添加这些注册表项,而驱动程序包中控制硬件安装的INF文件负责添加其它表项。这些表项定义了过滤器和功能驱动程序在堆栈中的次序。PnP管理器先装入最底层的过滤器驱动程序并调用其AddDevice函数。该函数创建一个FiDO,然后,AddDevice把PDO连接到FiDO上,这就是设备对象之间连线的由来。PnP管理器继续向上执行,装入并调用每个低层过滤器、功能驱动程序、每个高层过滤器,直到完成整个堆栈这种层次结构可以使I/O请求过程更加明了。I/O管理器发送的IRP,先被送到设备堆栈的上层过滤器驱动程序(FiDO),可以根据要求决定IRP的处理方式,是沿着设备栈继续向下传,或者是做一些额外的处理。依次,每一层驱动程序都可以决定如何处理IRP。有时,驱动程序不做任何事,仅仅是向下层传递该IRP

文档评论(0)

xjj2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档