欢迎来到天天文库
浏览记录
ID:28145139
大小:337.01 KB
页数:17页
时间:2018-12-08
《基于windows下数据卡过滤器驱动研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数据卡过滤器驱动研究目录1WindowsXPI/O清求处理结构32WDM驱动程序模型体系设备和驱动程序的层次结构43过滤器驱动程序介绍64过滤器驱动程序设计74.1WDM驱动程序初始化——DriverEntry()74.1.1请见高通驱动程序的没务初始化DriverEntry()分析84.2AddDevice()函数分析94.2.1请见高通驱动程序的设备初始化AddDevice()分析104.3派遣例程124.4Unload例程功能125数据卡过滤驱动配置方案135.1过滤驱动切换设备模式原理简述136过滤驱动安装146.
2、1预安装驱动146.2配置相关标志位146.2.1配置设备实例键下的参数146.2.2配置Service下键值157过滤驱动卸载167.1移除MassStorageDevice对应的注册表中的实例项167.2还原注册表键值168学习总结17注唐:17摘要:WDM是微软公司为Windows设计的一种通用的驱动程序模型。过滤器驱动程序作为其屮一类特殊的驱动程序,可以在不更改现有驱动程序的情况下,方便地修改、增加现有驱动程序的功能。本文在介绍过滤器驱动程序功能的基础上,重点介绍了其实现的关键技术,并给出了部分参考程序。关键词:W
3、DM;过滤器驱动程序;I/O管理器;PDO;FDOWDM(WindowsDriverMode)是微软公司为Windows的驱动程序设计的一种通用的驱动程序模型。相比以前的KDM和VXD来说,他的性能更商、系统之间移植更加方便。所以,随着系统的升级,WDM己经成为Windows2000以及WindowsXP系统下驱动程序开发的主流。作为WDM模型之屮一类特殊的驱动程序,过滤器驱动程序(Filterdriver)可以在不更改现有驱动程序的惜况下,方便地修改、增加现有驱动程序的功能。特别是对于Windows2000以及Windo
4、wsXP系统已经提供了通用驱动程序的硬件设备,通过编写过滤器驱动程序,可以以较小的代价扩展硬件现有的功能。因此具有很强的实际应用价伉。1WindowsXPI/O请求处理结构如图1所示,WindowsXP是分态的操作系统。对于用户可见的应用程序运行在用户模式,当需要从设备读取数据时,用广态程序只能调用Win32子系统提供的API来同设备交互,Win32子系统模块通过调用平台相关的系统服务接口实现该API,而平台相关的系统服务将调用内核模式支持例程。在内核模式有许多服务例程为应用程序请求提供服务,它们可以以某种方式与设备交互。
5、我们把这些服务例程的集合称为“10管理器”。10管理器首先检查传递过来的参数以保护系统安全或防止用广模式程序非法存取数据,然后创建一个称为“I/O请求包(IRP)”的数据结构,并把这个数据结构送到某个驱动程序的入口点。驱动程序一般通过硬件抽象层来和硬件交互,从而完成I/O请求工作。驱动程序完成I/0操作后,他将调用一个特殊的内核服务例程来完成IRPo这时,I/0管理器把数据和结果返回给Win32和用户应用程序。2WDM驱动程序模型体系设备和驱动程序的层次结构Windows驱动程序模型重新定义驱动程序分层堆栈。设备对象是系统
6、为帮助软件管理硬件而创建的数据结构。一个物理硬件可以有多个这样的数据结构。处于堆栈最底层的设备对象称为物理设备对象PDO(PhysicalDeviceObject),代表了设备和总线之间的连接。在设备对象堆栈的巾间的对象称为功能设备对象FDO(FunctionalDeviceObject),代表了设备的功能。在FDO的上而和下而还会有一些过滤器设备对象FIDO(FilterDeviceObject)。位于FDO上而的过滤器设备对象称为上层过滤器,位于FDO下而(但仍在PDO之上)的过滤器设备对象称为下层过滤器。总线驱动程序
7、负责枚举他的总线,这意味着发现总线上的全部设备和检测设备何时被添加或删除并为每个设备创建一个PDO。创建完PDO后,PnP管理器参照注册表中的信息查找与这个PDO相关的过滤器和功能驱动程序,它们出现在图的屮部。系统安装程序负责添加这些注册表项,而驱动程序包巾控制硬件安装的INF文件负责添加其它表项。这些表项定义了过滤器和功能驱动程序在堆栈中的次序。PnP管理器先装入最底层的过滤器驱动程序并调用其AddDevice函数。该函数创建一个FiDO,然后,AddDevice把PDO连接到FiDO上,这就是设备对象之间连线的由来。P
8、nP管理器继续向上执行,装入并调用每个低层过滤器、功能驱动程序、每个髙层过滤器,直到完成整个堆栈。这种层次结构可以使I/O请求过程更加明了。I/O管理器发送的IRP,先被送到设备堆栈的上层过滤器驱动程序(FiDO〉,它可以根据要求决定IRP的处理方式,是沿着设备栈继续向下传,或者是做一些额外的处理。依次
此文档下载收益归作者所有