- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 设备管理 设备管理---概述 Windows I/O系统概述 I/O系统结构 Windows驱动程序 I/O系统内核对象 I/O请求和处理 Windows I/O系统概述 I/O系统: 负责管理输入输出设备。 向用户隐藏硬件细节。 I/O系统结构 I/O系统组成 I/O管理器 设备驱动程序 PnP管理器 电源管理器 WMI支持例程 注册表 硬件抽象层(HAL) Windows驱动程序 驱动程序的功能 发送控制命令,进行错误处理 对各种可能的有关设备排队、挂起、唤醒等操作进行处理 执行缓冲区策略 执行一些特殊处理,比如代码转换。 驱动程序的分类 用户态驱动程序:虚拟设备驱动程序和Windows子系统打印机驱动程序 核心态驱动程序:文件系统驱动程序 、即插即用驱动程序 、非即插即用驱动程序 其他内核态驱动程序:WDM驱动程序、分层的驱动程序 Windows驱动程序--续 驱动程序分类图: Windows驱动程序--续 驱动程序的基本结构 初始化例程 “添加-设备”例程 分发例程 启动I/O例程 中断服务例程 DPC例程 I/O系统内核对象 文件对象 文件对象代表一个文件、设备或目录的打开实例。Windows系统将所有的设备都当成文件,所以文件对象就代表这个设备的设备对象。 驱动程序对象 驱动程序代表 系统中的一个 独立的驱动程序 驱动程序对象结构 I/O系统内核对象--续 设备对象和设备扩展 设备对象 代表一个具体的物理设备。 设备扩展 包含与特定设备相关的数据。 设备对象中包含一个指向对应驱动程序对象的指针,这样I/O管理器就能在接收到一个I/O请求时应该调用哪个驱动程序来处理该I/O请求。 “下一个设备对象”指针指向属于同一个驱动程序的下一个设备对象,该域把多个设备对象连接起来。 I/O系统内核对象--续 对象之间的关系 文件对象指向一个打开的设备实例,每当一个线程打开一个文件或设备时,都用一个文件对象指向对应的设备对象 驱动程序对象有多个与他相关的设备对象,这样就能方便的实现对硬件设备的控制。 设备对象还有一个指针指向该驱动程序对象,I/O管理器在接收到一个I/O请求时就知道该调用哪个驱动程序。 I/O请求和处理 I/O请求包 I/O系统使用一个I/O请求包(IRP,I/O Request Packet)表示每个I/O请求。当线程调用I/O服务时,I/O管理器就为该请求创建一个IRP数据结构,同时为该IRP传递一个指向相应驱动程序的指针。当驱动程序接收到一个IRP包时,执行IRP指定的操作,操作完成后将该IRP传递给I/O管理器。 I/O请求和处理--续 I/O请求处理 请求处理过程: I/O管理器接收用户发来的请求,并为该请求分配一个IRP数据结构。 检查I/O请求的合法性,并将IRP传递给合适的驱动程序。 驱动程序根据IRP的参数设置对设备进行操作。 操作完成时,驱动程序将IRP传递给I/O管理器。 I/O管理器检查IRP的状态域,查看用户的I/O请求是否完成。 I/O请求和处理--续 I/O请求处理过程图 设备管理---实验 WDM驱动程序 驱动程序实例 驱动程序加载 WDM驱动程序 WDM是一个分层的驱动程序模型。在该模型中,驱动程序的层和堆栈一起工作处理I/O请求。 WDM驱动程序--续 WDM驱动程序结构 可以把一个完整的驱动程序看作一个容器,它包含许多例程,当操作系统遇到一个IRP时,它就调用这个容器中的例程执行该IRP的各种操作。 驱动程序一般都有几个支持不同类型IRP的派遣函数,因此WDM驱动程序开发者的一个任务就是为这个容器选择所需要的例程。 WDM驱动程序--续 DriverEntry例程 DriverEntry是内核模式驱动程序主入口点函数,大部分的设备初始化工作都是在这个例程中完成的。函数原型如下: NTSTATUS DriverEntry ( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath ); 函数返回值是一个长整型的NTSTATUS值 WDM驱动程序--续 DriverEntry函数的主要工作有一下几个方面: 首先是为驱动程序指定派遣函数。 每个WDM驱动程序必须能处理PNP、POWER、SYSTEM_CONTROL这三种请求;应该在这里为这些请求指定派遣函数。 在省略号处,你可以插入设置其它MajorFunction指针的其他代码,比如IRP_MJ_CREATE、IRP_MJ_READ、IRP_M
您可能关注的文档
- 成都理工大学文法学院经济法学课件 第二章.ppt
- 成都理工大学文法学院经济法学课件 第九章.ppt
- 成都理工大学文法学院经济法学课件 第六章.ppt
- 成都理工大学文法学院经济法学课件 第七章.ppt
- 成都理工大学文法学院经济法学课件 第三章.ppt
- 成都理工大学文法学院经济法学课件 第十二章.ppt
- 成都理工大学文法学院经济法学课件 第十六章.ppt
- 成都理工大学文法学院经济法学课件 第十三章.ppt
- 成都理工大学文法学院经济法学课件 第十四章.ppt
- 成都理工大学文法学院经济法学课件 第十五章.ppt
- 绿电2022年系列报告之一:业绩利空释放,改革推动业绩反转和确定成长.docx
- 化学化工行业数字化转型ERP项目企业信息化规划实施方案.pdf
- 【研报】三部门绿电交易政策解读:溢价等额冲抵补贴,绿电交易规模有望提升---国海证券.docx
- 中国债券市场的未来.pdf
- 绿电制绿氢:实现“双碳”目标的有力武器-华创证券.docx
- 【深度分析】浅析绿证、配额制和碳交易市场对电力行业影响-长城证券.docx
- 绿电:景气度+集中度+盈利性均提升,资源获取和运营管理是核心壁垒.docx
- 节电产业与绿电应用年度报告(2022年版)摘要版--节能协会.docx
- 2024年中国人工智能系列白皮书-智能系统工程.pdf
- 如何进行行业研究 ——以幼教产业为例.pdf
最近下载
- 大楼维修改造工程投标方案(技术标367页).docx
- 高频电刀的使用(参考).ppt
- AQT3034—2022化工过程安全管理导则.pdf VIP
- 省考公务员-黑龙江-行政职业能力测验-第一章数量关系-第四节行程问题-.docx VIP
- DB23_T(1621.10-1621.14)-2015:黑龙江省建设工程施工操作技术规程(三).pdf VIP
- 整体法-隔离法-动态平衡题型练.doc VIP
- 2021年全国乙卷(生物)高考真题.pdf VIP
- 论中小企业会计核算重要性-来源:财会学习(第2020027期)-《中国建材报》社、中国会计学会建材分会.pdf VIP
- 2022年高考真题全国乙卷(文综历史)真题(有答案).pdf VIP
- 浅谈机务维修作风建设 蔡恒志.doc VIP
文档评论(0)