- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows I/O系统
冯秋 2004-10-27
1 Windows 2000/XP I/O系统结构和模型 1
1.1 概述 1
1.2 I/O管理器 1
1.3 PnP管理器 2
1.4 电源管理器 2
2 Windows 2000/XP I/O系统的四种数据结构 2
2.1 文件对象 2
2.2 驱动程序对象和设备对象 3
2.3 I/O请求包 3
3 Windows 2000/XP的设备驱动程序 3
3.1 概述 3
3.2 驱动程序结构 4
3.3 同步 4
4 Windows 2000/XP的I/O处理 4
4.1 I/O类型 4
4.2 对单层驱动程序的I/O请求 5
Windows 2000/XP I/O系统结构和模型
概述
Windows 2000/XP I/O系统是Windows 2000/XP执行体的组件,存在于NTOSKRNL.EXE文件中。它接受I/O请求,并以不同的形式传送到I/O设备。
Windows 2000/XP I/O系统由一些执行体组件和设备驱动程序组成,包括I/O管理器、设备驱动程序、PnP管理器、电源管理器、WMI支持例程、注册表和硬件抽象层(HAL)。
Windows 2000/XP中,所有I/O操作都通过虚拟文件执行,而隐藏了I/O操作目标的实现细节。虚拟文件是指用于I/O的所有源和目标,它们都被当作文件处理。所有被读写的数据都看作是直接读写这些虚拟文件的流。I/O管理器动态的把这些虚拟文件请求指向适当的设备驱动程序。
I/O管理器
I/O管理器把应用程序和系统组件连接到各种虚拟的、逻辑的和物理的设备上,并定义了一个支持设备驱动程序的基本框架,将I/O请求提交给设备驱动程序。
——I/O管理器创建代表每个I/O操作的IRP(I/O请求包),并传递给正确的驱动程序,当驱动程序执行完IRP指定的操作后,将IRP送回I/O管理器或通过I/O管理器送给另一驱动程序。
——I/O管理器为不同的驱动程序提供了公共的代码,以供驱动程序调用,而使单个的驱动程序变得简洁紧凑。
——提供灵活的I/O服务,允许环境子系统执行各自的I/O函数。
PnP管理器
PnP(Plug and Play,即插即用)即插入就可用,不必进行任何设置操作,是计算机系统I/O设备与部件配置的应用技术。
PnP管理器通过与I/O管理器和总线驱动程序的协同工作来检测硬件资源的分配,并检测相应硬件设备的添加和删除。
Windows 2000/XP的PnP管理器具有以下功能:
——自动识别所有已经安装的硬件设备
——通过一个名为资源仲裁的进程收集硬件资源需求来实现硬件资源的优化分配
——通过硬件标识选择应该加载的设备驱动程序
——为检测硬件配置变化提供应用程序和驱动程序的接口
PnP支持需要硬件、设备驱动程序和操作系统的协同工作。为了支持PnP,设备驱动程序必须支持PnP调度例程和添加设备的例程,总线驱动程序必须支持不同类型的PnP请求。
电源管理器
电源管理器通过与I/O管理器的协同工作来检测整个系统和单个硬件设备,完成不同电源状态的转换。
支持电源管理的BIOS必须符合ACPI(Advanced Configuration and Power Interface)标准。ACPI定义了6种不同的系统能耗状态,4种设备能耗状态。
Windows 2000/XP电源管理策略由电源管理器和设备驱动程序两部分组成。
——电源管理器管理整个系统的能耗状态转换,并调用相应设备的驱动程序完成。
——除响应电源管理器的电源管理命令外,设备驱动程序也可以独立控制设备的能耗状态。在一些情况下,当设备长时间不用时,设备驱动程序就可以减小该设备的能耗。
Windows 2000/XP I/O系统的四种数据结构
文件对象
文件对象代表了基于内存的共享物理资源。
文件对象包括文件名、字节偏移量、共享模式、打开模式等若干属性。当调用者打开文件或单一的设备时,I/O管理器为文件对象返回一个句柄。
文件对象由包含访问控制表(ACL)的安全描述体保护。I/O管理器查看安全子系统来决定文件的ACL是否允许进程去访问它的线程正在请求的文件。
文件对象表示一个基于内存的共享资源,而不表示资源本身。一个文件对象包括的唯一数据是对象句柄,而文件本身包括将被共享的数据或文本。
驱动程序对象和设备对象
驱动程序对象代表系统中一个独立的驱动程序,I/O管理器从驱动程序对象中获得并且为I/O记录每个驱动程序的调度例程的地址。
设备对象在系统中代表一个物理的、逻辑的或虚拟的设备并描述了它的特征。
当驱动程序加载到系统中时,I/O管理器将创建一个驱动程序对象,它调用驱动程序的初始化例程,该例程把驱动程序的入口点放到驱动程序对象中,并创建用于每个对象的设备对象,使设备对象脱离
文档评论(0)