已阅读5页,还剩74页未读, 继续免费阅读
(系统分析与集成专业论文)基于nt架构的计算机终端文件加密系统.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要 摘要 本文首先介绍了文件加密技术的基本原理,在此基础上对各种处于操作系 统不同层次的加密技术进行了阐述和比较,着重论述了内核层加密技术相比传 统加密技术的优势以及研究意义和国内外研究现状。详细介绍了以w i n d o w s 操 作系统文件系统驱动为基础,结合过滤驱动技术来实现文件信息加密目的的加 密技术。 文件系统过滤驱动工作在操作系统内核中,受到操作系统内核工作机制以 及数据结构的限制。因此,要设计好一个文件系统过滤驱动,必须要了解操作 系统的功能结构,工作机制以及系统数据结构。文章阐述了w i n d o w sn t 的架构; 分析了w i n d o w sn t 的系统组件和用户模式下的各个子系统,着重研究了对象管 理器、i o 管理器、虚拟内存管理器等内核模式下的n t 执行器组件,以及w i n d o w s n t 的工作机制,给出了过滤驱动的基本原理以及设计驱动程序时的基本步骤。 在此基础上,本文设计了一个结合u s b k e y 身份认证机制和文件权限控制的 文件加密系统。系统以文件系统过滤驱动为核心,实现了用户模式下对驱动程 序的实时控制,增加了系统的灵活性。对系统进行了测试,结果表明,本文开 发的计算机终端文件加密系统能够可靠的实现终端身份认证与文件加密,具有 重要的应用价值和巨大的市场前景。 文章最后对毕业论文进行了总结,对进一步研究提出了展望。 关键词:加密系统,终端,过滤驱动,w i n d o w sn t a b s t r a c t a b s t r a c t t h i st h e s i si n t r o d u c e st h eb a s i cp r i n c i p l e so ff i l ee n c r y p t i o nf i r s t l y o nt h i sb a s i s , t h et h e s i se x p a n d st h ea d v a n t a g e sa n dd i s a d v a n t a g e so fav a r i e t yo ff i l ee n c r y p t i o n s y s t e m sw h i c ha r ea td i f f e r e n tl e v e l so ft h eo p e r a t i n gs y s t e m ,f o c u s e so nt h e d i f f e r e n c e sb e t w e e nt h ef i l e e n c r y p t i o nb a s e do nk e r n e la n dt h et r a d i t i o n a lf i l e e n c r y p t i o na n dt h er e s e a r c h i n gw o r ka th o m ea n da b r o a d ,d e t a i l st h ef i l ee n c r y p t i o n w h i c hi sb a s e do nf i l es y s t e mi nw i n d o w so p e r a t i n gs y s t e m d r i v e n ,c o m b i n i n gf i l t e r d r i v e r f i l es y s t e mf i l t e rd r i v e ri si nt h eo p e r a t i n gs y s t e mk e r n e l i th a sb e e nw o r k i n g m e c h a n i s mo ft h eo p e r a t i n gs y s t e mk e r n e ld a t as t r u c t u r e sa n dc o n s t r a i n t s t h e r e f o r e , i no r d e rt od e s i g naf i l e s y s t e mf i l t e rd r i v e r , i ti sn e c e s s a r yt ou n d e r s t a n dt h e f u n c t i o n so ft h eo p e r a t i n gs y s t e ms t r u c t u r e ,w o r k i n gm e c h a n i s ma n dt h es y s t e md a t a s t r u c t u r e s t h et h e s i si n t r o d u c e st h es t r u c t u r eo fw i n d o w sn t ,t h e na n a l y z e st h e s y s t e mc o m p o n e n t so fw i n d o w sn t ,i n t r o d u c e st h eu s e r - m o d es u b s y s t e m s ,f o c u s e s o na na n a l y s i so ft h en tk e r n e l - m o d ei m p l e m e n t a t i o no ft h ev a r i o u sc o m p o n e n t so f m o d u l e ,f o re x a m p l e ,o b j e c tm a n a g e r ,i om a n a g e r ,v i r t u a lm e m o r ym a n a g e m e n t , e t c t h e n ,t h et h e s i se x p a n d st h ew o r k i n gm e c h a n i s mo fw i n d o w sn t 1 1 1 et h e s i s i n t r o d u c e st h eb a s i cp r i n c i p l e so ff i l t e rd r i v e ra n dt h eb a s i cs t e p so fd e s i g n i n ga d r i v e r o nt h i sb a s i s ,t h i st h e s i sd e s i g n saf i l ee n c r y p t i o ns y s t e mc o m b i n i n gt h e a u t h e n t i c a t i o nm e c h a n i s m so fu s b k e ya n df i l ep e r m i s s i o n sc o n t r 0 1 n l es y s t e mp u t t h ef i l es y s t e mf i l t e rd r i v e ra st h ec o r e ,a c h i e v e dt h er e a l - t i m ec o n t r o lt ot h ef i l t e r d r i v e ru n d e rt h eu s e r - m o d e ,i n c r e a s e df l e x i b i l i t yo ft h es y s t e m ,n l es y s t e mh a sb e e n t e s t e d 1 1 l er e s u l ts h o w st h a tt h ef i l ee n c r y p t i o ns y s t e mb a s e do nc o m p u t e rt e r m i n a l , w h i c hi sd e s i g n e di nt h i st h e s i s ,c a na c h i e v er e l i a b l et e r m i n a la u t h e n t i c a t i o na n df i l e e n c r y p t i o na n dh a si m p o r t a n ta p p l i c a t i o nv a l u ea n dh u g e m a r k e t p o t e n t i a l f i n a l l y , t h ea r t i c l es u m m a r i z e st h e s i s ,a n dp u tf o r w a r dt h eg o a lo ff l l r t h e r r e s e a r c h k e y w o r d s :e n c r y p t i o ns y s t e m ,t e r m i n a l ,f i l t e rd r i v e r ,w i n d o w sn t 缩写词表 e f s f e k d d k i f s l p c l s a s s l 冲 h a l 瓜q l m v d d p d o f d o f i d o f s d i n f e n c r y p t i o n g f i l es y s t e m f i l ee n c r y p t i o nk e y d e v i c ed e v e l o p m e n tk i t i n s t a l l a b l ef i l es y s t e m l o c a lp r o c e d u r ec a l l s l o c a ls e c u r i t ya u t h o r i t y s e c u r es o c k e tl a y e r i or e q u e s tp a c k a g e h a r d w a r ea b s t r a c t i o nl a y e r i n t e r r u p tr e q u e s tl e v e l w i n d o w sd r i v e rm o d e l v i s u a ld e v i c ed n v e r p h y s i c a ld e v i c eo b j e c t f u n c t i o n a ld e v i c eo b j e c t f i l t e rd e v i c eo b j e c t f i l es y s t e md r i v e r i n f o r m a t i o nf i l e 缩写词表 7 4 加密文件系统 文件加密钥匙 设备开发包 可安装文件系统 本地函数调用 本地安全认证 安全套接层 输入输出请求包 硬件抽象层 中断请求级别 w i n d o w s 驱动模型 虚拟设备驱动程序 物理设备对象 功能设备对象 过滤设备对象 文件系统驱动 信息文件 学位论文独创性声明 本人郑重声明: 1 、坚持以。求实、创新一的科学精神从事研究工作。 2 、本论文是我个人在导师指导下进行的研究工作和取得的研究 成果。 3 、本论文中除引文外,所有实验、数据和有关材料均是真实的。 4 、本论文中除引文和致谢的内容外,不包含其他人或其它机构 已经发表或撰写过的研究成果。 5 、其他同志对本研究所做的贡献均已在论文中作了声明并表示 了谢意。 作者签名:赴 日期:竺! z 笸:星 学位论文使用授权声明 本人完全了解南京信息工程大学有关保留、使用学位论文的规 定,学校有权保留学位论文并向国家主管部门或其指定机构送交论 文的电子版和纸质版;有权将学位论文用于非赢利目的的少量复制 并允许论文进入学校图书馆被查阅;有权将学位论文的内容编入有 关数据库进行检索;有权将学位论文的标题和摘要汇编出版。保密 的学位论文在解密后适用本规定。 作者签名:盥 日期:趁1 2i ! ! 关于学位论文使用授权的说明 本人完全了解南京信息工程大学有关保留、使用学位论文的规定,即:学校有权保留送 交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用 影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵循此规定) 作者签名:导师签名: 日期:蟹 第一章前言 1 1 文件加密技术 第一章前言 随着计算机的普及,文件信息的安全性问题已经成为当今信息科学领域中最受关注的 问题之一。目前,解决该问题最常用的技术手段是加密技术。文件加密技术的核心思想可 以概括为钩子技术,通过在用户态请求到存储介质存储这条通路的某处添加自定义的处理 模块,将明文信息转换成密文信息,并最终将密文信息保存在存储介质上。n 1 实现加密技术的方法可以分为两种: 一种是通过硬件加密引擎实现,即c p u 将数据发送给硬件加密引擎就可以完成加密工 作。这种技术的优点是速度快,安全性高,但是实现成本较高,交互性差。 另一种是通过软件实现。软件实现方式又可以分为基于用户模式实现和基于系统内核 模式实现。基于用户模式的实现方式,加密软件实现起来比较容易,但是由于它是用户空 间的程序,各种用户进程和内核进程都可以访问它的中间处理数据,或在系统缓存中留下 的明文文件,因此,明文信息容易被其它进程拦截。安全性不高。基于系统内核模式的实 现方式,由于软件工作在操作系统内核,得到系统内核保护,因此具有安全性较高、加密 灵活、对用户透明等优点,但实现的难度相对较大,加密效率不如硬件加密。 文件系统过滤驱动属于基于系统内核模式的实现方式。n 1 过滤驱动工作在文件系统驱 动层和应用层之间,截获传输的请求并进行相应的加解密处理。文件系统过滤驱动作为一 种内核态中间层驱动,只需对下层的文件系统驱动作相应的功能扩展,加密粒度灵活,可 靠性强,效率高,易于扩充。 1 2 国内外研究现状 1 e f s ( e n c r y p t i o n gf i l es y s t e m ) 微软推出的e f s ,支持文件加密系统。w i n d o w s2 0 0 0 x p s e r v e r2 0 0 3 都配各了e f s , 它可以针对存储在n t f s 磁盘卷上的文件和文件夹执行加密操作。如果硬盘上的文件已经使 用了e f s 进行加密,即使非法用户能访问到你硬盘上的文件,由于没有解密的密钥,文件 也是不可用的。啪 第一章前言 e f s 加密基于公钥策略。在使用e f s 加密一个文件或文件夹时,系统首先会生成个 由伪随机数组成的f e k ,然后将利用f e k 和数据扩展标准x 算法创建加密后的文件,并把 它存储到硬盘上,同时删除未加密的原始文件。接下来系统利用你的公钥加密f e k ,并把 加密后的f e k 存储在同一个加密文件中。而在访问被加密的文件时,系统首先利用当前用 户的私钥解密f e k ,然后利用f e k 解密出文件。在首次使用e f s 时,如果用户还没有公钥 私钥对( 统称为密钥) ,则会首先生成密钥,然后加密数据。如果你登录到了域环境中,密 钥的生成依赖于域控制器,否则它就依赖于本地机器。e f s 加密的用户验证过程是在登录 w i n d o w s 时进行的,只要登录到w i n d o w s ,就可以打开任何一个被授权的加密文件。 优点:无需第三方软件加密,加密后可直接存取,使用安全、方便。 缺点:只能在使用w i n d o w s2 0 0 0 ) ( p 2 0 0 3 操作系统、n t f s 文件系统的硬盘上使用。加 密密钥与用户w i n d o w s 账户挂钩。一般用户不太容易理解和掌握密钥的管理方法。 2 基于虚拟磁盘的文件加密方法 该方法利用操作系统内核模式驱动程序技术,在系统中建立虚拟磁盘。虚拟磁盘驱动 程序在处理i o 请求的过程中,对虚拟磁盘的数据流进行实时的加解密,加解密过程对 用户和上层应用是完全透明的。用户可以像使用普通的硬盘分区一样来使用该虚拟磁盘, 可以在虚拟磁盘上创建、修改、删除目录和文件,而不必关心文件的加解密过程。 优点:有多种不同加密强度的软件可供选择。加密文件的使用存取方便快捷。 缺点:存取加密文件时需要加载加密磁盘。并且由于加密的虚拟磁盘分区实际在硬盘上 被存储为一个或几个文件,所以当硬盘损坏或系统原因出现文件故障时有可能由于文件损 坏而使整个加密磁盘无法访问。该方法只能在计算机上开辟一个私密的空间来存储需要加 密的文件,而对于计算机中其他的文件则失去了监控的作用。 3 e f s 与加密虚拟磁盘相结合的方法 这种方法是将以上两种方案相结合,通过w i n d o w s 操作系统内建的e f s 文件加密系统 加密文件,充分利用其使用安全、方便的优点,通过加密虚拟磁盘存储e f s 文件加密系统 的加密密钥。 优点:无需第三方软件加密,加密后可直接存取,使用安全、方便。 缺点:只能在使用w i n d o w s2 0 0 0 x p 2 0 0 3 操作系统、n t f s 文件系统的硬盘上使用。 加密密钥与用户w i n d o w s 账户挂钩。一般用户不太容易理解和掌握密钥的管理方法。而且 在其他电脑上使用时需要导入和删除加密密钥。不希望在所有使用的电脑上安装加密软件 需要选择无需安装的加密软件。 2 第一章前言 1 3 本文的研究工作 近年以来,人们越来越多的关注基于内核的文件加密技术研究,这方面的成果也越来 越多。文件系统过滤驱动技术已经成为设计人员在设计加密系统时的选择。微软发布的文 件系统驱动开发工具包中,即i n s t a l l a b l ef i l es y s t e md d k ,提供了一个完整文件系统 过滤驱动的例子代码s f i l t e r ,s f i l t e r ,为开发人员解决了诸如过滤驱动设备的生成,以 及附着到目标设备,新加存储卷设备的加载等繁琐的工作,使得开发人员可以集中于功能 例程的开发工作,大大降低了驱动开发的复杂程度。 本文在此基础上,通过结合u s b k e y 的身份认证技术,设计一个以文件系统过滤驱动为 核心的文件加密系统。运用该系统管理员可以在用户模式下设置新的加密策略,实时改变 文件系统过滤驱动的工作状态。加密策略包括系统监控的路径,以及用户访问该路径时所 拥有的权限。在此基础上添加关于监控读和写的例程,即s f i l t e r c r e a t e ,s f i l t e r r e a d 和s f i l t e r w r i t e 。这些例程的共同作用,实现了文件系统过滤驱动。为了防止非法用户使 用设置程序改变驱动程序的设置状态,系统采用u s b k e y 的身份认证技术,以保证只有拥有 管理员权限的的用户才能启动设置程序改变文件系统过滤驱动的监控状态,实行文件实时 加密,扩展w i n d o w s 文件系统驱动的功能。 1 4 本文的文章结构 第1 章介绍文件加密技术的发展以及目前的研究热点,简述了基于文件系统过滤驱动 的内核加密技术的基本原理,提出本文的研究工作。 第2 章介绍w i n d o w sn t 的基本架构,新概念和新特性,重点阐述了n t 执行器的各个 功能部件以及内核的工作机制。 第3 章研究驱动程序的基本概念和结构和分类,并对w d m 驱动程序的概念和分类进行 介绍,重点分析w d m 驱动程序的分层结构。 第4 章讨论文件系统驱动的基本含义以及磁盘文件系统驱动的功能,阐述了过滤驱动 的基本工作原理以及应用领域。 第5 章概要阐述加密系统的结构,优缺点以及各个子系统所需完成的功能,并对驱动 设计时设计的w i n d o w sn t 中断优先权进行了论述。 第6 章详细介绍了各个系统的设计,对各个子系统对应的需要涉及到得内核数据结构 进行了详细说明。 3 第章前言 第7 章对测试的软硬环境进行了描述,并在该环境下对本文设计的系统进行测试,得 出测试数据,最后对系统的应用前景进行了描述。 第8 章总结本文的研究工作,提出未来的研究方向。 1 5 本章小结 本章首先阐述了文件加密技术,文件加密技术的分类,对各类加密技术进行了简单介 绍。然后,对基于内核层的加密技术的国内外研究现状进行了详细描述。讨论了其实际应 用中的优缺点,在此基础上提出了本文的研究工作,给出了本文的内容安排。 4 第二章w i n d o w sn t 架构 第二章w i n d o w sn t 架构 2 1w i n d o w sn t 概述 w i n d o w sn t 是m i c r o s o f t 推出的面向工作站、网络服务器和大型计算机的网络操作系 统,也可做p c 操作系统。它与通信服务紧密集成,提供文件和打印服务,能运行客户机 服务器应用程序,内置了i n t e r n e t i n t r a n e t 功能,已逐渐成为企业组网的标准平台。 2 2w i n d o w sn t 的设计目标 1 平台之间的移植性; 2 硬件和软件的可配置性; 3 永远抢占优先和永远中断: 4 多处理器平台上的多处理器安全; 5 基于对象: 6 带可重用i o 请求包( i r p ) 的包驱动i o ; 7 异步i 0 支持。 2 3w i n d o w sn t 引入的新概念 1 n t f s ( w i n d o w sn tf i l es y s t e m ) :w i n d o w sn t 采用的新型文件系统。可提供安 全存取控制及容错能力,在大容量磁盘上,它的效率比f a t 高。 2 共享:对网络资源设置一定的权限许可,没有得到权限许可,就无法访问网络资 源。 3 用户账户( u s e ra c c o u n t ) :要想使用网络资源,必须有用户账户。w i n d o w sn t 对用户和服务程序,都要求提供合法账户。专为应用程序或服务进程创建的账户即服务账 户在系统启动时,服务进程使用服务账户登录以获得在系统中使用资源的权利和权限。 普通用户账户由用户登录时提供,用于w i n d o w sn t 控制该用户在系统中的权利和权限,与 服务账户本质上无区别。 5 第二章w i n d o w sn t 架构 4 域( d o m a i n ) - 是w i n d o w sn t 中数据安全和集中管理的基本单位。网络由域组成, 域具有唯一的名称。域可以看作由运行n 1 的服务器组成的系统,一组电脑共用相同的账户 及安全数据库。 5 工作群组( w o r k g r o u p ) :一种资源与系统管理皆分散的网络结构。工作群组里, 每台电脑之间是对等关系,彼此可以是服务器,也可以当作工作站。 6 权利( r i g h t ) :授权某用户可以在系统上执行某些操作。权利用来保护系统整体。 7 权限( p e r m i s s i o n ) :用来保护特定对象。权限规定可以使用某一对象的用户以及 用什么方法使用。 8 安全审核:w i n d o w sn t 将记录发生在电脑上各项与安全系统相关的过程。 2 4w i n d o w sn t 引入的新特性 1 多线程与多进程 w i n d o w sn t 操作系统的设计如下:被执行的程序可以用一个进程表不,当程序运行时 进程被创建。进程是各种资源和程序属性的集合体。进程由多个线程组成,每个线程是c p u 运行的时间片,是w i n d o wn t 运行和调度的单位。当一个进程被创建时,一个主线程就被 创建,这个主线程又可以创建另外的线程。在w i n s l o w sn r r 中,每一个线程都有其调度优 先级和根据调度的自主性。换句话说,当一个操作系统做出调度决定时,并不考虑线程所 属的进程。1 2 可移植性 如前所述,w i n d o w sn t 被设计成独立于处理器的体系结构。为了实现这一目的,除特 殊情况使用汇编语言外,大多数w i n d o w sn r 操作系统使用c 语言编写。在整个使用过程中, w i n d o w sn t 支持x 8 6 和a l p h a 处理器体系结构。 3 可维护性与可扩展性 为满足w i n d o w sn t 可维护性和可扩展性的要求,采取了以下措施: ( 1 ) w i n d o w sn t 的最初开发人员将系统设计得十分简洁,并提供可扩展的编程文档。 加上在整个系统设计中都使用了通用的编程标准,使得后续的编程开发人员能够完成系统 设计中的任何一块小的工作,而不必咨询系统专家以了解隐藏的规则、边沿效应、古怪的 编程技巧或w i n d o w sn t 以前的编程情况。程序编码就象文档一样直接了当。 ( 2 ) 由于使用子系统来实现系统的主要部分,w i n d o w sn t 能隔离并控制所依赖的系统 环境。例如,p o s i x 标准的变化只会影响一个系统组成部分,即p o s i x 子系统,进程结构 6 第二章w i n d o w sn t 架构 的设计、内存管理和同步原语( s y n c h r o n i z a t i o np r i m i t i v e ) 等都不会受到影响。 ( 3 ) w i n d o w sn t 设计适应了需求的改变和增长。子系统可以在不对基本系统产生影响 的情况下增加系统的功能。1 可以在不修改w i n d o w sn t 执行模块的情况下,加入新的子系 统。例如,可以加入新的子系统以支持除微软提供的m sd o s 、o s 2 、w i n 3 2 和p o s i x 以外 的操作系统环境。而且,执行模块本身也采用了模块化,因为它的各组成部分都互相独立, 并以可预测方式相互作用。并且因为这些组成部分之间的接口都受到仔细控制,因此可以 在不损坏系统的情况下替换某个组成部分。如果新版本正确实现了所有的系统服务和内部 界面,操作系统的运行就和以前一样。 ( 4 ) 最重要的是所有子系统经过编码实现后都能利用w i n d o w sn t 的安全特性。 4 虚拟内存的分页管理 w i n d o w s n t 采用虚拟内存体系结构技术在这一体系结构中,每一进程拥有其自己的4 g b 虚拟地址空间,此虚拟地址空间被分为页面。根据系统的不同,页面的大小不同。x 8 6 体系结构中页面的大小为4 l b ;a l p h a 体系结构中,页面的大小为8 k b 。通常,用户应用 程序大约可使用它们的进程虚拟地址空间的2 0 g b ,而剩下的2g b 空间会留给系统使用。 u 1w i n d o w sn t 企业级服务器的一种调整机制可将用户应用地址空间扩展到3 0 g b ,剩下 的1 g b 地址空间为系统使用。 5 多处理器安全性 在任何的w i n d o w sn t 多处理器平台上,须具有下列条件:其一,所有的c p u 是相同 的,所有的协处理器都是相同的或者没有协处理器;其二,所有的c p u 共亨内存,对内存 有平等的访问权;其三,在一个对称平台,每个c p u 能访问内存,获取一个中断,访问 啪控制寄存器;在一个非对称平台,主c p u 获取所有的中断。 2 5w in d o w sn t 系统组件分析 2 5 1w i n d o w sn t 系统结构 w i n d o w s 操作系统的设计都遵循努力缩小k c m e l ( p 勺核) 的尺寸,采用客户一服务模型 实现一些组件,使用消息在模块间传递信息。另外,实现了一种分层的操作系统,使得每 一个组成部分都可以通过定义好的接n - q 其他层软件进行交互。系统结构如图2 1 所示, 7 第二章w i n d o w sn t 架构 i l 咿n 进程 w i l l 3 2 应用程序p o s i ) ( 用户 上上上 、一一r 、j ,r、 、兰伞子系统一一夕7 , w i n 3 2 子系统夕1o p _ o s i x 子系统 保护子系统( 服务器)系统服务接口 i i 用户模式 一)| :一多 内核模式 一 厂、 嘶理i 配置管理器内存管理进程结本地过对象管安全引 器构组件程调用理器 用监视 文件系 即插即用管理器 器 运行支持 统、中电源管理器 a d d d e v i c e 字段,用来存储 a d d d e v i c e 例程指针。 3 p u n i c o d e _ s t r i n gh a r d w a r e d a t a b a s e 指向注册表r e g i s t r y m a c h i n e h a r d w a r e 中硬件配置信息。 4 p f j 峪t _ _ i o _ d i s p a t c hf a s t l o d i s p a t c h 指向驱动的f a s ti o 进入点的指针。 5 p d r i v e ri n i t i a l i z ed r i v e r i n i t 012345 6 789ab cd e f ”j 婵 0 t y p e ( 4 ) s i z e d e v i c e o b j e c tf l a g s d r i v e r s t a r t 。 ”。”7 。1 一 1 0d r i v e r s i z ed r i v e r s e c t i o nd r i v e r e x t e n s i o nn a m en a m e 二 帮 l e nm a x l e l l 。 k 一 ,“ h_“*“十 2 0n a m eh a r d w a r e d a t a b a s ef a s t1 0 d is p a t c h d r i v e r e n t r y 3 0 s t a r t l ou n l o a d m a j o r f u n c ti o n a o i r p m j 5 e t 戴o t a i r pm j - p n p 指向d r i v e r e n t r y 的指针,由i o 管理器设置。 6 p d r i v e r _ s t a r t i od r i v e r s t a r t i o 函数s t a r t i o 进入点指针,在d r i v e r e n t r y 函数内设置。 7 p d r i v e r _ u n l o a dd r i v e r u n l o a d 4 7 第六章系统详细设计 函数d r i v e r u n l o a d 进入点指针,在d r i v e r e n t r y 函数内设置。 8 p d r i v e r _ d i s p a t c hm a j o r f u n c t i o n i r p _ m jm a x i m u mf u n c t i o n + i 由i r p 处理例程指针组成的数组,通过此数组分发i r p 。数组的内容在d r i v e r e n t r y 函数内设置。 6 4 4 设备对象 设备对象是w d m 中一个重要的数据结构,设备对象保存关于设备特征和状态信息,是 i o 管理器和驱动程序了解和操作设备的工具。哺1 装载后的驱动程序需要虚拟、逻辑和物理设备来处理i o 请求。每一个驱动程序在初 始化时都要在a d d d e v i c e 里调用i o c r e a t e d e v i c e 函数来创建设备对象。驱动程序为它的每 一个设备创建设备对象,对于驱动程序来说,设备对象代表了设备。一个驱动程序对象代 表了一个驱动程序,它可以创建一个或多个设备对象。i 0 管理器维护一个设备对象列表, 并把指针存储到驱动程序对象中。大多数的驱动程序使用设备对象的设备扩展字段来维护 设备状态信息或驱动指定的i o 请求的上下文数据。 设备对象是部分不透明的。某些特定的字段和与设备对象有关的系统定义的符号常量, 驱动将会访问这些字段或把它传送给其他例程。图6 7 中非阴影区域是可以访问的: _ _ s6 i t89 l abc d e 卜” ol234 。 , 0 t y p e ( 3 ) s i z er e fc o u n td r i v e r o b j e c t n e x t d e v v 1 0a t t a c h e d d e v c u r r e n t i r pt i m e rf l a g s yvw * 2 0c h a r a c t e r i s t i c sv p bd e v i c e e x t e n s i o nd e v i c e t y p e 一 。雾 3 0s t a k 毫 q u e u e l is t e n t r y 运 s i z e i q u e u e w a it c o n t e x t b l o c k ; 4 0 5 0a li g n m e n t s i z es p a r e l “ i b o d 。e v o b j e x t e n s i o n r e s e r v e d 1 ,t i。 第六章系统详细设计 1 p d r i v e r _ o b j e c td r i v e r o b j e c t 驱动程序对象指针。 2 p d e v i c eo b j e c tn e x t d e v i c e 下一个设备对象指针,此i o 管理器调用i o c r e a t e d e v i c e 更新此链表。 3 p i i i pc u r r e n t i r p 当前i r p 。如果驱动程序有s t a r t i o 例程,并且它的进入点在驱动程序对象内已经设 置,且驱动程序正在处理i r p ,此字段才不为空。 4 u l o n gf l a g s 规定设备的缓冲策略,d ob u f f e r e d _ _ i od od i r e c t _ i o 。 5 p v o i dd e v i c e e x t e n s i o n 设备扩展指针。此结构是驱动程序自定义的,其大小作为参数传递给i o c r e a t e d e v i c e 。 6 d e v i c et y p ed e v i c e t y p e 设备类型。在i o c r e a t e d e v i c e 函数调用时的第四个参数。如:f i l ed e v i c e _ u n k n o w n 。 7 c c h a rs t a c k s i z e 发送到该设备的i r p 所需的最少数量的i o 堆栈位置。 6 4 5 设备扩展 设备扩展是与设备对象相关的另一种重要的数据结构。可以用它来保存与特定设备关 联的信息。设备扩展其实只是一个未分页的池,由驱动开发者来定义它的大小和内容。并 由i o 管理器自动把它分配给设备对象,即设备对象的p v o i dd e v i c e e x t e n s i o n 字段。由 于此结构是用户自己自定义的,所以必须要让系统知道需要给此结构预留多少空间,因此 要把设备扩展结构的大小作为参数传递给i o c r e a t e d e v i c e 函数。i o 管理器的 i o c r e a t e d e v i c e 函数将为设备对象和设备扩展对象在非分页内存池内申请内存。 设备扩展主要用来维护设备状态信息、存储驱动程序使用的内核对象或系统资源( 如 自旋锁) 、保存驱动程序需要的数据等。由于大多数的总线驱动、功能驱动和过滤器驱动都 要工作在任意线程上下文,即任意线程都可能成为当前线程,所以,设备扩展是保存设备 状态信息和数据的主要空间。柏1 每一个实现了i s r 的驱动程序都要存储中断对象( 一种内核对象) 指针,大部分的驱 动程序把它们存储在设备扩展里。每一个标准的驱动程序函数在接收一个i r p 时,同时接 收到的还有一个指向申请该1 0 操作的设备对象的指针,此函数能够通过此指针访问到相应 的设备扩展。 4 9 第六章系统详细设计 另外,上一层的设备扩展都保存一个指向下一层设备对象的指针作为调用 i o c a l l d r i v e r 函数的参数。 设备扩展一般要包括设备对象的反向指针、设备状态或驱动程序环境信息等,它的设 备扩展的内容依赖特定的驱动程序,应该根据驱动程序的需要来定义。在本系统的过滤驱 动中,设备扩展设计成如下格式: t y p e d e fs t r u c t _ s f i l t e r _ d e v i c e _ e x t e n s i o n p d e v i c e _ o b j e c ta t t a c h e d t o d e v i c e o b l j e c t : p d e v i c l o b j e c ts t o r a g e s t a c k d e v i c e o b j e c t : u n i c o d e - s t r i n gd e v i c e n a m e : w c h a rd e v i c e n a m e b u f f e r m a x _ d e v n a m e _ l e n g t : w c h a rd r i v e l e t t e r : r t l _ _ g e n e r i c _ t a b l ef s c t x t a b l e : f a s t _ m u t e xf s c t x t a b l e m u t e x : s f i l t e r _ d e v l c ee x t e n s i o n ,* p s f i l t e r _ d e v i c e _ e x t e n s i o n ; 1 a t t a c h e d t o d e v i c e o b j e c t :指向我们附着的文件系统设备对象。 2 $ t o r a g e s t a c k d e v i c e o b j e c t t 指向我们附着的被安装的卷设备对象。 3 d e v i c e n a m e :设备的名字。如果附着在卷设备对象上,那么保存的是物理磁盘驱 动的对象;如果附着在控制设备对象上,那么保存的是控制设备的名字。 4 d e v i c e n a m e b u f f e r :宽字符数组的形式保存d e v i c e n a m e 。 5 d r i v e l e t t e r :经过转换以后卷设备的逻辑名字,如c ,d ,e 等。 6 4 6 文件对象 f i l e _ o b j e c t 结构是系统用来表示一个文件对象,在用户模式保护子系统下,文件对 象代表了一个开放的句柄,句柄可能指向文件,设备,目录或者卷。在设备或者中间层驱 动中,一个文件对象通常代表了设备对象。4 在文件系统栈驱动中,一个文件对象通常代 表了一个目录或者文件。 文件对象通常是不透明的。但是对于一些特殊的驱动,比如文件系统驱动和网络传输 驱动,可以使用f i l e _ o b j e c t 的某些部分。 f i l e - o b j e c t 的结构大致如下: t y p e d e fs t r u c t _ f i l e _ o b j e c t p d e v i c e _ o b j e c td e v i c e o b j e c t : 5 0 第六章系统详细设计 p v o i df s c o n t e x t : p v o i df s c o n t e x t 2 : u n i c o d e _ s t r i n gf il e n a m e : ) f i l eo b j e ( 汀: 1 d e v i c e o b j e c t :指向访问的文件所在的设备 2 f s c o n t e x t :一个包含文件对象的驱动的任何可选状态的指针。对于文件系统驱动, 它必须指向f s r t l _ a d v a n c e df c bh e a d e r 头结构,该头结构包含了一个 f i l e - s y s t e m - s p e c i f i c 结构。如果不指向它,将会导致系统的不稳定。通常情况下,该头 结构嵌在文件控制块( f c b ) 中,然而在某些支持多数据流的文件系统中,例如n t f s ,该 头结构是一个流控制块。在w d m 设备栈中,只有工能设备对象( f d 0 ) 可以使用两个c o n t e x t 指针,文件系统驱动在对同一数据流进行多次打开时,共享该指针。 3 f s c o n t e x t 2 :一个包含文件对象的驱动的任何附加状态的指针。由于底层文件系 统将会使用该指针,所以该指针在文件系统中是不透明的。 4 f i l e n a m e :保存被访问文件的文件名,当打开的为卷设备对象时,u n i c o d e _ s t r i n g 的l e n g t h 字段为0 ,只有在响应i r pm jc r e a t e 时,f i l e n a m e 才有效。 6 4 7 文件标识结构 用来标识访问的文件是否经过加密处理。 t y p e d e fs t r u c t _ f i l e _ c o n t e x t f i l e _ c o n t e x t _ h d r : u l o n g r e f c o u n t : b o o l e a nd e c r y p t o n r e a d ; 是否读时解密 b o o l e a ne n c r y p t o n w r i t e :是否写时加密 b o o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心内科常见疾病诊断与治疗测试题及答案
- 湖南科技大学毕业设计(论文)撰写规范
- 论文 发展现状怎么写
- 中国科学技术大学专业学位硕士研究生学位论文开题报告【模板】
- 如何写小学生作文评语论文
- 汉语言毕业论文范文
- 发展现状和发展趋势的区别
- 副主任护师面试答辩
- 征兵心理测试中性格测试题型分析
- 幼师专业英语能力测试试题及答案详解
- 市政维护安全培训课件
- 铁路专用线设备运行维护管理方案
- 2025年安徽省农垦集团有限公司所属企业招聘笔试备考及答案详解(必刷)
- 离婚协议书2025范本下载
- 微生物药物研发进展
- 手术体位相关性周围神经损伤预防专家共识解读课件
- 激励销售培训课件
- 白电油安全知识培训课件
- 招标采购自查自纠及整改措施报告范文
- 国际压力性损伤-溃疡预防和治疗临床指南(2025年版)解读
- 物流地产课件
评论
0/150
提交评论