- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows设备驱动程序设计 西北工业大学计算机学院 周兴社 谷建华 倪红波 Windows 2000/XP的设备驱动程序 虚拟设备 驱动程序(VDD) 内核模式 驱动程序 文件系统 驱动程序 保留设备 驱动程序 PnP 驱动程序 显示 驱动程序 WDM驱动程序 类驱动程序 小驱动程序 Windows2000/XP设备驱动程序的种类 虚拟设备驱动程序(Virtual Device Driver,VDD)可使DOS应用程序访问x86平台上的硬件,也可支持Windows 9x下的对端口访问。WDM驱动程序 是一种遵循电源管理协议并能在Win98和Win2000上实现源代码级兼容的PnP驱动程序。WDM驱动程序又可分为类驱动程序(管理已定义类的设备)和小驱动程序(提供厂商专有的支持)。 显示驱动程序是用于显示和打印设备的内核模式驱动程序。文件系统驱动程序在本地磁盘或网络上实现标准PC文件系统模型(含多层次目录结构和命名文件概念)。 保留设备驱动程序主要包括Windows NT早期版本的驱动程序,它直接控制一个硬设备而不用其他驱动程序帮助,可以不做修改地在Windows 2000中运行。 WDM的基本结构 1、设备对象 设备对象:系统为帮助软件管理硬件而创建的一个数据 结构(包括PDO、FDO、FiDO)。 PDO(物理设备对象):设备对象中的物理型对象。 FDO(功能设备对象):设备对象中的功能型对象。 FiDO(过滤器设备对象):在I/O管理器、FDO和PDO间的监视、修改IRP流的过滤型对象,分上层过滤和下层过滤对象。 设备对象栈: 描述对设备对象内部处理请求的驱动层次的栈型结构 IRP I/O系统服务 Win32子系统 应用程序 用户态 核心态 I/O 管理器 FDO 设备对象 FiDO FiDO PDO 设 备 对 象 栈 上层过滤器驱动程序 功能驱动程序 下层过滤器驱动程序 总线驱动程序 功能驱动程序 :管理FDO所代表的设备,负责其初始化、处理I/O操作、I/O操作完成时产生中断事件,为用户提供一种适当的设备控制方式。 总线驱动程序:负责管理PDO硬件和计算机之间的连接。 过滤器驱动程序:管理FiDO所代表的设备,用于监视和修改IRP流,硬件或软件人员可利用过滤器驱动程序修改上级驱动程序的传递过来的操作。 WDM设备驱动程序类型 每种硬件设备的驱动程序由上述两到三种驱动程序组成(可以无过滤器驱动程序)。相同类型的总线共用一种总线驱动程序(如PCI总线驱动程序)。 设备对象与设备驱动程序关系 每个功能设备对应一个设备对象(设备对象栈为设备对象内部属性), 相同型号的多个功能设备对应多个设备对象。每个设备对象具有不同的私有属性值(如设备ID)。 相同型号的多个功能设备共用一个过滤驱动程序和功能驱动程序,即只有一个驱动程序对象。 设备驱动程序与设备关系: 同类中成员函数与类实例关系。 应用程序对设备对象的操作过程 操作接口:设备驱动程序的Win32 API函数,或重载的设备驱动程序的Win32 API回调函数。 操作参数:设备句柄、操作类型及其它信息。 例:DeviceIoControl(hDevice, DIOC_MY_IO, NULL, 0, NULL, 0, NULL,NULL); Win32子系统处理:将I/O操作转换后交I/O管理器处理, I/O管理器创建一个I/O请求包(IRP)后,送到设备对象栈的最上层设备对象对应的驱动程序。 驱动程序处理:每层驱动程序都可决定如何处理IRP,既可直接处理完该IRP就不再向下传,也可处理完后继续向下传递,还可只做向下传递工作。下层处理完的返回信息又通过该包的结构逐层向上传递。 设备驱动程序的装入过程 总线驱动程序检测到新的硬件 安装向导指定新的硬件类型 取得厂商、设备类型、版本、资源需求等信息 取配置头区域信息 由指定得到信息 硬件接入 添加新设备 系统重启 检测 指定 PnP管理器就创建PDO,在注册表中添加某些项 所有硬件检测完毕? N Y PnP管理器决定分配哪些资源给各个设备 PnP管理器查找注册表中与该PDO相吻合的各级驱动程序 执行DriverEntry(),设置各例程的入口地址,将对象指针装入I/O管理器中 找到? N Y 读INF文件,按INF文件指令安装各级驱动程序 PnP管理器装入最底层过滤驱动程序,调用其AddDevice函数,该函数创建一个FiDO,实现FiDO与同级驱动程序的连接 PnP管理器查找所选驱动程序对象已在I/O管理器
您可能关注的文档
最近下载
- 《工程伦理》课件 第十二讲 “一带一路”与中国工程的跨文化交流.pptx VIP
- 公司员工考勤表.doc VIP
- 部编高教版 中职语文 基础模块上册《国家的儿子》课件.pptx VIP
- 2025年4月自考02318计算机组成原理答案含评分参考.docx VIP
- 《城里最漂亮的巨人》绘本故事ppt课件.ppt VIP
- 部编版道德与法治二年级上册《欢欢喜喜庆国庆》(精品课件).pptx VIP
- 人工智能赋能程序设计课程教学改革 .pdf VIP
- 第九讲:信息与大数据伦理问题-工程伦理.pptx VIP
- 中级财务会计(西南财经) 学堂在线测试答案.docx VIP
- 学习医学文献的检索与阅读技巧.pptx VIP
文档评论(0)