已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Windows 设备管理,Windows 2000/XP的I/O系统,1.Windows I/O系统结构和组件 2.Windows I/O系统的数据结构 3.Windows 设备驱动程序 4.Windows I/O处理,1.Windows I/O系统结构和组件,Windows 2000/XP I/O 系统是Windows 2000/XP 执行体的组件,存在于 NTOSKRNL EXE 文件中。它接受来自用户态和核心态的 I/O 请求,并且以不同的形 式把它们传送到 I/O 设备。 Windows 2000/XP I/O 系统的设计目标如下: (1)高效快速进行 I/O 处理; (2)使用标准的安全机制保护共享的资源; (3)满足Win32、OS/2 和 POSIX (Portable Operating System)子系统指定的 I/O服务的需要; (4)允许用高级语言编写驱动程序;,(5)根据用户的配置或者系统中 硬件设备的添加和删除,能在系统中动态地添加或删除相应的设备驱动程序; (6)为包括 FAT、CD-ROM 文件系统(CDFS)、UDF (Universal Disk Format)文件系统和 Windows 2000/XP 文件系统(NTFS) 的多种可安排的文件系统提供支持; (7)允许整个系统或者单个硬件设备进入和离开低功 耗状态,这样可以节约能源。,Windows 2000/XP I/O 系统定义了Windows 2000/XP 上的 I/O 处理模型,并且执行公用的或被多个驱动程序请求的功能。它主要负责创建代表I/O 请求的 IRP 和引导通过不同驱动程序的包,在完成 I/O 时向调用者返回结果。 I/O 管理器通过使用 I/O 系统对象来定位不同的驱动程序和设备,这些对象包括驱动程序对象和设备对象。内部的Windows 2000/XP I/O 系统以异步操作方式获得高性能,并且向用户态应用程序提供同步和异步I/O 功能。,设备驱动程序不仅包括传统的硬件设备驱动程序,还包括文件系统、网络和分层过滤器驱动程序。通过使用公用机制,所有驱动程序都具有相同的结构,并以相同的机制在彼此之间和 I/0 管理器通信。所以,它们可以被分层,即把一层放在另一层上来 达到模块化,并可以减少在驱动程序之间的复制。,Windows 2000/XP I/O 系统的结构和组件,用户态即插即用组件用于控制和配置设备的用户态 API 。 I/O 管理器把应用程序和系统组件连接到各种虚拟的、逻辑的和物理的设 备上,并且定义了一个支持设备驱动程序的基本构架。负责驱动 I/O 请求的处理,为设备驱动程序提供核心服务。它把用户态的读写转化为 I/O 请求包 IRP 。 设备驱动程序为某种类型的设备提供一个I/O 接口。设备驱动程序从 I/O 管 理器接受处理命令,当处理完毕后通知 I/O 管理器。设备驱动程序之间的协同工作也通过 I/O 管理器进行。,即插即用管理器PnP(plug and play)通过与 I/O 管理器和总线驱动程序的协同工作来检测硬件资源的分配,并且检测相应硬件设备的添加和删除。 电源管理器通过与 I/O 管理器的协同工作来检测整个系统和单个硬件设备,完成不同电源状态的转换。 WMI(Windows Management lnstrumentation)支持例程也叫做 Windows 驱动程序模型 WDM(Windows Driver Model)WMI 提供者,允许驱动程序使用这些支持例程作为媒介,与用户态运行的 WMI 服务通信。,即插即用WDM 接口I/O 系统为驱动程序提供了分层结构,这一结构包括WDM 驱动程序、驱动程序层和设备对象。WDM 驱动程序可以分为三类:总线驱动程序、驱动程序和过滤器驱动程序。每一个设备都含有两个以上的驱 动程序层,用于支持它所基于的 I/O 总线的总线驱动程序,用于支持设备的功能驱动程序,以及可选的对总线、设备或设备类的I/O 请求进行分类的过滤器驱动程序。 注册表作为一个数据库,存储基本硬件设备的描述信息以及驱动程序的初始化和配置信息。,硬件抽象层(HAL Hardware Abstraction Layer ) I/O 访问例程把设备驱动程序与多种多样的硬件平台隔离开来,使它们在给定的体系结构中是二进制可移植的,并在Windows 2000/XP支持的硬件体系结构中是源代码可移植的。,在 Windows 2000/XP 中,所有的I/O 操作都通过虚拟文件执行,隐藏了 I/O 操作目标的实现细节,为应用程序提供了一个统一的到设备的接口。虚拟文件是指用于I/O的所有源或目标,它们都被当做文件来处理(例如文件、目录、管道和邮箱) 。所有被读 取或写入的数据都可以看作是直接读写到这些虚拟文件的流。用户态应用程序(不管它们是 Win32、 POSIX 或 OS/2)调用文档化的函数(公开的调用接口),这些函数再依次 调用内部 I/O 子系统函数来从文件中读取、对文件写入和执行其他的操作。I/O 管理器动态地把这些虚拟文件请求指向适当的设备驱动程序。一个典型的 I/O 请求流程的结构如下图所示。,一个典型的I/O请求流程,I/O管理器,I/O 管理器(I/O manager)定义有序的工作框架,在该框架里,I/O 请求被提交给设备驱动程序。在 Windows2000 XP 中,整个I/O 系统是由“包”驱动的,大多数I/O 请求用“I/O 请求包 IRP”表示,它从一个I/O 系统组件移动到另一个I O 系统组件,快速 I/O 是一个特例,它不使用 IRP 。IRP 是在每个阶段控制如何处理 I/O 操作的数据结构。,I/O 管理器创建代表每个 I/O 操作的 IRP,传递IRP 给正确的驱动程序,并且当此I/O 操作完成后,处理这个数据包。相反,驱动程序接受 IRP,执行IRP 指定的操作,并且在完成操作后把IRP 送回I/O 管理器或为下一步的处理而通过I/O 管理器把它送到另一个驱动程序。,除了创建并处理IRP 以外,I/O 管理器还为不同的驱动程序提供了公共的代码,驱动程序调用这些代码来执行它们的 I/O 处理。通过在 I/O 管理器中合并公共的任务,单个的驱动程序将变得更加简洁和更加紧凑。例如,I/O 管理器提供一个允许某个驱动程序调用其他驱动程序的函数。它还管理用于 I/O 请求的缓冲区,为驱动程序提供超时支持,并记录操作系统中加载了哪些可安装的文件系统。,驱动程序呈现的统一的、模块化的接口允许 I/O 管理器调用任何驱动程序而不需要与它的结构和内部细节有关的任何特殊的知识。驱动程序也可以相互调用(通过 I/O 管理器)来完成 I/O 请求的分层的、独立的处理。,PnP管理器,即插即用PnP (Plug and Play)是计算机系统 I/O 设备与部件配置的应用技术。顾名思义,PnP 是指插入就可用,不需要进行任何设置操作。由于一个系统可以配置多种外部设备,设备也经常变动和更换,它们都要占有一定的系统资源,彼此间在硬件和软件上可能会产生冲突。因此,在系统中要正确地对它们进行配置和资源匹配;当设备撤除、添置和进行系统升级时,配置过程往往是一个困难的过程。为了改变这种状况,出现了 PnP 技术。,PnP 技术主要有以下特点:PnP 技术支持 I/O 设备及部件的自动配置,使用户能够简单方便地使用系统扩充设备;PnP 技术减少了由制造商造成的种种用户限制,简化了部件的硬件跳线设置,使I/O 附加卡和部件不再具有人工跳线设置电路;利用PnP技术可以在主机板和附加卡上保存系统资源的配置参数和分配状态,有利于系统对整个 I/O 资源的分配和控制;PnP 技术支持和兼容各种操作系统平台,具有很强的扩展性和可移植性;PnP 技术在一定程度上具有“热插入”、“热拼接”功能。,Windows 2000/XP 的PnP 支持提供了以下能力: PnP 管理器自动识别所有已经安装的硬件设备。在系统启动的时候,一个进程会检测系统中硬件设备的添加或删除。 PnP 管理器通过一个名为资源仲裁(resource arbitrating)的进程收集硬件资源需求(中断,I/O 地址等)来实现硬件资源的优化分配;满足系统中的每一个硬件设备的资源需求。PnP 管理器还可以在启动后根据系统中硬件配置的变化对硬件资源重新进行分配。,PnP 管理器通过硬件标识选择应该加载的设备驱动程序。如果找到相应的设备驱动程序,则通过 I/O 管理器加载,否则,启动相应的用户态进程请求用户指定相应的设备驱动程序。 PnP 管理器也为检测硬件配置变化提供了应用程序和驱动程序的接口。因此,在 Windows 2000/XP 中,在硬件配置发生变化的时候,相应的应用程序和驱动程序也会得到通知。,电源管理器,Windows 2000 XP 的电源管理策略由两部分组成:电源管理器和设备驱动程序。电源管理器是系统电源策略的所有者,因此整个系统的能耗状态转换由电源管理器决定,并调用相应设备的驱动程序完成。电源管理器根据以下因素决定当前相同的能耗状态:系统活动状况;系统电源状况;应用程序的关机、休眠请求;用户的操作,例如用户按电源按钮;控制面板的电源设置。,当电源管理器决定要转换能耗状态时,相应的电源管理命令会发给设备驱动程序的相应调度例程。一个设备可能需要多个设备驱动程序,但是负责电源管理的设备驱动程序只有一个,设备驱动程序根据当前系统状态和设备的状态决定如何进行下一步操作,例如,当设备状态从 正常共作切换到睡眠时,设备的能耗状态也从正常工作的能耗切换到比其低的能耗状态。,除了响应电源管理器的电源管理命令外,设备驱动程序也可以独立地控制设备的能耗状态。在一些情况下,当设备长时间不用时,设备驱动程序就可以减小该设备的能耗。设备驱动程序可以自己检测设备的闲置时间,也可以通过电源管理器检测。,2.Windows I/O系统的数据结构,四种主要的数据结构代表了I/O 请求:文件对象、驱动程序对象、设备对象和 I/O 请求包(IRP)。,文件对象,文件对象提供了基于内存的共享物理资源的表示法(除了被命名的管道和邮箱以外,它们虽然是基于内存的,但不是物理资源) 。在Windows 2000/XP I/O 系统中,文件对象也代表这些资源。,下表列出了一些文件对象的属性。,当调用者打开文件或单一的设备时,I/O 管理器将为文件对象返回一个句柄。像其他的执行体对象一样,文件对象由包含访问控制表(ACL)的安全描述体保护。I/0 管理器查看安全子系统来决定文件的 ACL 是否允许进程去访问它的线程正在请求的文件。如果允许对象管理器将准予访问,并把它返回的文件句柄和给予的访问权限联系起来。如果这个线程或在进程中的另一个线程需要去执行另外的操作,而不是最初请求指定的操作,那么线程就必须打开另一个句柄,它将提示做另外的安全检查。,文件对象表示一个基于内存的共享资源,它有别于其他的执行体对象。一个文件对象包括的唯一数据结构是对象句柄,但是文件本身包括将被共享的数据或文本。每次当一个线程打开一个文件句柄时,就创建了一个新的文件,其属性由一组新的句柄指定。,当打开一个文件时,文件名包括文件驻留的设备对象的名称。例如,名称DeviceFloppy0 myfile.dat 引用软盘驱动器A 上的文件 myfile.dat 。子字符串Device Floppy0 是Windows 2000 XP 内部设备对象的名称,代表那个软盘驱动器。当打开myfile.dat 文件时,I/O 管理器就创建一个文件对象,并在文件对象中存储一个 Floppy0设备的指针,然后,给调用者返回一个文件句柄。此后,当调用者使用文件句柄时,I/O 管理器能够直接找到 Floppy0 设备对象。,驱动程序对象和设备对象,当线程为文件对象打开一个句柄时,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 服务时,I/O 管理器就构造一个 IRP 来表示在整个系统 I/O 进展中要进行的操作。I/O 管理器在 IRP 中保存一个指向调用者文件对象的指针。 IRP 由两部分组成:固定部分(称作标题)和一个或多个堆栈单元。固定部分信息包括:请求的类型和大小、是同步请求还是异步请求、用于缓冲 I/O 的指向缓冲区的指针和随着请求的进展而变化的状态信息。IRP 的堆栈单元包括一个功能码、功能特定的参数和个指向调用者文件对象的指针。,3.Windows 设备驱动程序,Windows 2000/XP 支持多种类型的设备驱动程序和编程环境,在同一种驱动程序中也存在不同的编程环境,具体取决于硬件设备。这里主要讨论核心模式的驱动程序,核心驱动程序的种类很多,主要分为以下几种: 文件系统驱动程序:接受访问文件的 I/O 请求,主要是针对大容量设备和网络设备。 同Windows 2000/XP 的PnP 管理器和电源管理器有关的设备驱动程序:包括大容量存储设备、协议栈和网络适配器等。,为Windows NT 编写的设备驱动程序:可以在 Windows 2000/XP 中工作,但 是一般不具备电源管理和 PnP 的支持,会影响整个系统的电源管理和PnP 管理的能力。 Win32 子系统显示驱动程序和打印驱动程序:将把与设备无关的图形(GD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒业公司亏本原因分析报告模板
- 福建师范大学《山水画技法》2023-2024学年第一学期期末试卷
- 金属行业氧化铝之四问四答:不鸣则已一鸣惊人
- 规范标准管道考试题目
- 美工室改造方案与总结
- 小班认识身体课件
- 2024年贵州客车驾驶员考试试题
- 2024年东营道路客运从业资格证考试模拟试题
- 2024年榆林公交车从业资格证考试题库
- 2024年昭通客运从业资格证考试试题
- 痛风性关节炎的健康宣教
- 统计与概率《义务教育数学课程标准》解读
- 酒店客房运营管理酒店客房房态管理及优化培训课件
- 2023年12月辽宁沈阳市事业单位公开招聘退役大学毕业生士兵401人笔试历年高频考点-难、易错点荟萃附答案带详解
- 海外施工安全管理的特色与挑战
- 人工智能应用技术:专业设立论证报告
- 家政服务保洁收纳培训方案
- 《气敏传感器》课件
- 怎样让桃树高产桃树高产栽培技术
- 京剧音乐艺术研究
- 驾校联盟可行性方案
评论
0/150
提交评论