已阅读5页,还剩53页未读, 继续免费阅读
(计算机科学与技术专业论文)计算机数据安全管理系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着计算机内数据在人们日常生活中重要性的提高,数据安全问题也逐步引 起人们的重视。在很多情况下,信息安全问题是由内部人员的有意无意的违规操 作或意外事件( 如涉密存储介质丢失、被盗等) 所引起的,而并非外来黑客和病毒 所为。因此,防范计算机敏感信息泄漏已成为当前信息安全保障工作中急需解决 的问题,但现有的信息安全产品大多数是防范黑客和病毒攻击的,不能有效防止 敏感数据泄漏。 针对上述情况,本文提出了一种计算机数据安全管理系统,系统从u s b 移 动存储介质( 下面简称移动盘) 安全认证与使用控制、基于虚拟磁盘的磁盘文件 保护以及网络安全监控等方面入手,对移动盘、敏感文件和网络行为进行安全监 管,堵住容易引起敏感信息泄漏的安全漏洞,有效保证了计算机数据的安全。 本文的研究内容包括以下部分: ( 1 ) 研究分析了计算机数据安全保护的必要性以及发展现状。 ( 2 ) 研究了所涉及的相关技术,包括:w i n d o w s 操作系统的驱动程序尤其是 w d m 驱动、w d m 层次中的过滤驱动、w d m 驱动的重要数据结构及入口点、 w i n d o w s 操作系统的网络体系结构等。 ( 3 ) 提出并实现了一种数据安全管理系统,对系统的设计目标、框架设计、 功能设计以及核心模块的实现原理及方法进行了详细的论述。 ( 4 ) 对系统的功能和性能进行测试。 ( 5 ) 最后对研究工作进行了总结和展望。 关键词:文件系统过滤驱动,虚拟磁盘设备对象,网络架构三层数据包过滤 矗曲s 耋薹壤e 耋 w i t l ld a 融撼p e c p l e sl 如燃衄伽i n g 硒o 懈a n dm o 聪i m p c i n 柚t ,溉s e 伽晒t ya l 巍然酶鞠雄鹪黼姆删e 。b 勰鑫础醒出潼a 袱瓣酶捌抵触辨印k 幽 薮赫鞠幽硪绺l 瓣稿璐蒯铤龇燃,蛔嚼铀黼狳搴氇趣毯熊蕊锺搬l 鞠瓣罐叠酾趱箩泌 肚o e do fb e i n g 鳓l v e dn 鲫胤p r e s e n t ,p 戳糟l e _ i - l s u a l l l yu 8 e 伐m l b i n a t i o 啦硝h 嘲a 糟 黼d 鲥撕撇细黝黼s 脚姒鹄b u lt b i s 妇do f m e 曲o d 叔e x p e 瑙溉ms p 肥a d 。 a 黼瞧嚣f 鍪趣莲黼箩氇鬣璐然黼蠹辚勰陵辩s 避张堍p 嘛糍濑掣堪懿辎如纨嘲箩纽 印e c 逾cd 嘲a 证辩她ll k 鞭y i sn m 勰鼹赫黼w e 眦 b 豁c do n 煮h e s cs i t 嘶。鲻,s 洲哆o fd 缴ai nc o m p 啾蹦s y s t 锄妇驴峨t 岛掩枷。 酶避绌蠡酗群艇j 魏s 蝴鬟主l 套髓戳v 豢蓍、v 激n 畦却:l i 蹦掰斓娃魄隧l 辨或 赫撼渤s 艘l 蠡莲b y 磷i 稳莲铡晦# 遗es 蹬嚣辍雾精瞻e 曝幽瞧浚黼嘲芦隧v e 零w 磷l , 讹er e s e 鲫随w i 珧m e n 娃o n e di nt h cp a p 蹦i sm a i n l y 曲鲫t : ( 1 ) 善沁s e 黼浊e d1 【h ed 姆e l 娜忸蛆ta 耐蛔却f t 鞠搬爹e e t i o 髓协d a _ | ai n 伐糯辨l 甑 ( :2 ) 【 s t h 镒e 蠖l 巍er c l a t 主v el e d m o l o g y ,泌谶u d i 醯gw i 秘韵獬器铆嘻茁a l 硒g 器粥把md r i v e f e s 雌c i a l l yw d m 拍v 丘h 麒d m 盯i nw 驺ml e v e l ,d a 协,8 觚c t l l 佗如w d md f i v 嚣 剥w 躺倒姻鲫嗡蹬埯礅瓣融s 黔燃s 蠲黼褥锺罄勰, 国s 湖娃移o f d a 瞧i 蠡瓣黻觯淤s 努l 饿j 寒艘l 酗揪撼黼瘥s 蹿嘲触趱棼彘s i 擎, 凤n 烈i o nd e s i 龋,p r i r l c i p l e 觋dm e m o do f 黼黜o “l e si l 即l e n l e ma r c 枷艄蝴t i o n e d 4 )s y 器t i 雕蚍s 鞠d 皴激黟隧羽f c 粥p l e m 镪l 醴, 国忿l 瓣鞘粗瓣氧燃酬鞠瘘蔗蒯潍。 聊w o r d s :矗l e8 姆t e mf i l 瓣d 凼e f ,v m 姒d i s kd 胛溉嘶鲥,幽尊l e v e l so f w 翻惑。囤赂辩麴酽弱溆纛叠l 毯e 霞l 隧i a 瞧 i 薹 西北工业大学 学位论文知识产权声明书 本天完全了解学校有关徕护知识产权麴勰定,即:磷究生在梭玫读学位期闽论 芝工作的知泌产权单位属于两北工业大学。学校有权保留并向国家有关部门或机构 送交论文豹复印 牛衽龟予版。本人允许论文被查阕和借凝。学校可以将本学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手 段裸存帮汇编本学髓论文。同时本入保证,毕业后结合学位论文研究课题再撰写豹 :之拳律注明作者单位为婚北工业大学。 裸密论文待解密后适嗣本声明。 学位论文作者签名:里丝指导教师签名: 7 年如叼嗣1 年月7 日 西北工业大学 学位论文原创性声明 秉承学校严谨的学飙期优良的科学道德,本入帮重声萌:掰里交的学位论文, 避本人在导师的指导下进 亍研究工作所取得的成果。尽我所知,除文中融经注明引 封瀚内容和致谢的地方卦,本论文不包含经何其他个人或集体己经公开发表或撰写 过的研究成梁,不包含本人或他人已申请学位或其它用途使用过的成果。对本文的 研究锻出重罄贡献的个人和集体,均已在文中以明确方式标甓。 本人学饭沧文与辏料若柯不实,愿意承担一切相关的法律责任。 学位论文作者签名:兰整 稍7 年弓月闷 露纛互盏大学疆论文 1 1 发展现状 第薹章绪论 董。重。薹数据安垒熊现状 随着信息化和电子化进程的发展,信息安垒问题也因此成为人们关注的焦 点。提刘信息安全,人们自然就会想到黑客攻击和病毒破坏,认为只要部瓣了防 火墙、入侵检溅系统、薅毒杀毒较赞,诗算概萘缝瓣安全了。但是美菡联邦调查 局和计算机安全机构的调查结果袭鞠;超过8 0 冁的信息安全隐惠来自内都,丽非 外来黑客和病毒引起,信息泄漏造成的损失是被病毒破坏的1 8 倍,是被爆客攻 击所造成损失的3 s 倍。 带演国家信惑安垒测评谈迸串心提供的谲纛结果遵显黎,馕惠安全惩鼷蠡缓 多情况下都是由内部人士有意无意的操作引起的,而非外来鬈客和病毒引超。国 家信息化专家咨询委员会委员沈麟祥院士在2 0 0 3 年中国信息安全技术大会上对 我国傍息安全系缝鞠产监进行? 藏恶;“世暴上糕美统诗表鳃,瘸息安垒鹃袭击 7 5 以上是内外勾结新造成的,这种趋势还在逐疹生升,我溺的信息安全锻设不 对头,我们花的钱是解决1 5 的问题、2 5 的问题,还是解决7 5 的问题2 一定 是这琵的翔题”。 计算枫的开放悭、易用性昶标准纯等特点,健计算钒德惠曩有共享和翕予扩 散的特性,导致计算机信息始终面临着泄露、窃取、篡改和破坏的巨大危险【l 】。 如何防止杰部人员有意秃意的操佟丽造成的信息泄漏问题稳成先当前信息安垒 保障置捧巾急需勰捷越勰遂。 由内部造成的数据信息泄密原霸主要体现在以下几点: ( 1 ) 网络建设只涟熏防范外部入侵、忽视内部信息安全保密。对内部的违规 上阕括魏幂能隧止也幂戆够记录。缀然计算撬采彀了防火墙和入侵检测等德惑保 护措藏,组这些蓿崽保护措施只熊够阻止矫豁入授,不能检测剽内部a 员缒蠹规 行为,即不能防止内部窃取信息。 无法阻止因笔记本电脑和移动盘丢失或携带恶意软件丽弓l 起的重要数 据澄瀵。对计算枫上使瓣的移动硬盘、蛰盘等都浚有进行认诞翻控制,导致缀多 外来移动盘插入计算枫后弓i 发恶意操作,如插入术马,盗窃嶷件等。另外,由于 没有对存有重要数据的移动盘进行登记,也无法检查和发现移动盘的丢失,从而 无法发现移动盘嚏傣惠泄露。 嚣羹艺王鼗大学壤论文 ( 3 ) 现有的计算机太多使用口令密码方式进行身份认证,这种简单的身份认 涯使缀多攻击者可以攫霹合法用户获取访阕权限,胶丙使计冀枫内的数据信息存 在被窃取、更改或破环的危险。爱辨,视算搋内数据班璃文眷赣也降羝7 数据的 安全。w 湖o w s 举身内置了基于文件的加密功能( m 似和m o sx 也怒如 此) ,在特定的p e 文件夹里面存储的任何数据都能自动进行加密。但这种方法 有一个彘茎盼安全选壤,需要用户恕文释放封熬誉文件夹孛,褥曼器支持n 窿s 文件系统。 总之,计算机数据信息安全述襻在许多问题,其负面影响已经到了不得不重 视的地步,迫切鲍需瓣提出解决方案。 重。重2 现有解决方案 针对计算机数据安全存在的问题,人们提啦了很多解决方案。但现有的信息 安垒产晶大多数是防范黑客积病毒骏毒憋,不熊春效防止数据泄潺,霞有的咒个 防数摇瀵漏的解决方寨邈或多或少的存在润题。 i b m 和微软分别簌2 0 0 2 年和2 0 0 3 年推出了计算机数据安垒问题解决方寨, l b m 和微软的解决方案都是以安全芯片为核心来构成安全予系统,并嵌入刘计 算枫圭摄上,与相瘟麴安全较谗( 箍供操俸系统,应溺软髀骘安全芯片乏麓的接 口) 结合起来使用,毙服了通用计算机数据易于被读取的缺陷,提供了强大的安 全防护性能。但是由于价格昂贵,黼且需要有棚瓢套软件的支持,只在小范围得 燮了瘦潮。 清华紫光在纂推出的计算机终端信息囊垒傈护系统增加了用户访润数 据的身份认证机制,而凰对计算机麓耍数据也进行了加密处理,在很大程度上限 制了非授投属户访闷重要数据。这囊计算机终端信息安全保护系统较m 赫鞠微 软提邀酶解捷方案造价低,毽无法麟决援投瘸户将数据拷瑟蘩移动盘看,因设备 丢失而引起的数据泄鬻。另外,这鬻终端信息安全保护系统并没有阻止内部人员 违规上网的功能。 耋1 2 解决方案 沈凰绪院士说过:“信息想要囊垒,首先要对使用者进行控制和管理,要进 行倍崽赡访闻控制”。鞑p se 约豢融飘栅蕊也说;“安全然鉴粼蠢始。努磐还霎 通过加密的方式来确傈数据的完整健”。由此筒翔,要保护数据的安全,簧从两 方面入手,一是加强信息的访问控制;二是保迸信息以密文形式存储。 l 。翔强信息访阍控制 热强蓿意酶访溽燕制有两个需要解决越阉惩; 2 秀冀艺至鼗夫攀颈涂文 ( 1 ) 澍谁进行控制 对移动盘、网络缴及溺户三个囊瑟静数据使用蠹进行控制。 g 秘麴何控翻 三个不同的使用者的数据使用方式不同,采取的控制方式也不同。采用硬件 方式对用户以及移动盘进行身份认谖,对网络则采用数据包过滤的方式。 2 。德感的密文存赭 加密技术是保障数据安全的最有效和最可靠的方法,将信息经过密钥和加密 算法,转换成很难识别的密文后进行存储,即使数据遭窃取也无法被理解,可以 保证更鸯被授毅熟人才裁阕读该售感,款丙避免了信感漤潺。 诗冀概上豹重要数据璐及拷藏瓣移动盘上豹数据都瘟该被囊动加密,遮样霹 使移动盘簧失,存储禚介质上的数据也不会泄漏。另外,加密算法采用安垒性较 高的a 嚣s 冀法。 1 3 研究内容 本谍题的研究内容包括以下部分: 醛研究了基于粥翩驱渤蔗的访麓控制规铡,戡及燃碱勰 d 五v 髓m 硼意1 ) 驱动程序结构和其中的数据结构。 ( 2 ) 研究了w i n d o 骗湛网络体系绪构网络,以及传输层s 鞭璐骶v i c ep 讲d 骰 融幽鼹务提供者、抟输驱旗揍露褥l 飘髓鼯硪魏巍嚣融确棼醇鞠 期i s 剥确褥瘕蜘重n 溆矗e es p i 釉躐孛闯鞭动瑟魏编耧方法。 ( 3 ) 提出并实现了一种数据安垒保护系统,对系统的设计阿标、框架设计、 功能设计、通信挤议娃爱核心模块的实现方法进行了详细的论述。 鳓澍系统酶功能帮牲能避符测试,嚣试络鬻袭暖该系统逞行正常,遮藏了 系统设计的目标。 重4 章节安捧 第一章介绍了计算机内数据安垒保护的现状、解决办法以及本课题的研究背 景和内容。 第三章论述7 系统的慈体设计鞫实褒关键技零,慧体设计氢耩框榘设计、功 能设计,箍控端和控制端的功能播述筹;关键技术包括w 硼。猢猁下的驱动 程序结构、w d m 驱动程序内重要的数据结构、w i 翮o w s 网络体系结构以及i s 、 s 班以及飘麓三层接鞠。 第三章给出了系统整控端移动懿谴曩控制模块的窭现原理和程痔实蜣。 3 西北工业大学硕士论文 第四章给出了系统监控端虚拟磁盘管理模块的实现原理和程序实现。 第五章给出了系统监控端网络监控模块的实现原理和程序实现。 第六章给出了系统的部分测试用例。 第七章总结了论文研究工作,并提出了进一步研究的设想。 西北工业大学硕士论文 系统总体设计与关键技术分析 第2 章系统总体设计与关键技术分析 2 1 系统总体设计 2 1 1 系统设计目标 本系统是用于保障计算机数据安全使用的软件系统,为用户保护计算机上的 数据安全提供保障,堵住数据泄漏的隐患和漏洞。 下面所用的特定计算机是指存有重要数据的计算机,即需要提供数据信息保 护的计算机。非特定计算机则是指不需要提供数据保护的计算机。内部移动盘是 指经过认证的、可以在特定计算机上使用的移动盘。外来移动盘则是指未经过认 证的、不能在特定计算机上使用的移动盘。 本系统将实现下列安全功能: 1 未经认证的外来移动盘不能在特定计算机上使用,防止通过外来移动盘 引入恶意程序( 如病毒程序、木马程序等) 破坏计算机系统。 2 在特定计算机上只能使用经过认证的内部移动盘,并且自动加密所存储 的文件,防止因移动盘丢失而引起的信息泄密。 3 在非特定计算机上无法打开内部移动盘中被加密存储的文件。 4 禁止特定计算机上的重要数据通过网络发送出去,防止通过网络而造成 的数据泄密。 5 以虚拟磁盘方式提供文件加密保护功能,在虚拟磁盘存储的文件被自动 加密,同时显示虚拟磁盘时必须插入经过认证的内部u 盘,防止因硬盘被盗而 引起的信息泄密。 6 对特定计算机进行连网管理、移动盘管理和安全审计管理等。 2 1 2 系统体系结构 系统由管理端和监控端两个子系统组成。 监控端软件安装和运行特定计算机上,主要由移动盘使用控制子模块、计算 机连网监控子模块以及虚拟磁盘管理子模块三个模块组成。实现了对移动盘、网 络的使用控制,并对计算机以及移动盘内的数据进行透明加解密。其中,虚拟 磁盘是指类似于磁盘的虚拟设备,而不是真正的磁盘,但可以像磁盘一样操作, 可以对虚拟磁盘格式化,在分区内创建、删除、修改各种文件。 系统控制端由安全管理部门使用,主要提供策略发送、移动盘认证管理、连 网策略设置等功能。图2 1 为系统的部署图。 5 器囊基薹鼗大学颈士论文 系统慧髂竣计笔关键控寨分拆 鼷纂l 系统部署结构隧 髓控端在运行时将违规操作记录下来,并随时发送给管理端,管理端根据相 应的违规行为改变监控端的行为策略并回馈给监控端。这里的行为策略包括:连 网策舔耨监控端移动蠹缝溺策略。它翻的关系辩图2 之隳示。 圈2 趱监控端与管理端关系 薹。撵制端臻麓攒述 系统管理端主要提供下列功麓。 0 ) 移动盘认证管理 安全管理部朗瓣奉攀谴魏移动盘进行注麓耱试证警趱,游霆泰经浚遥麴移动 盘在特定计算枫上使用,造成耋嚣信息的泄密。 偿) 计算机连网策略设置 为监控端制定麟络安全规则,翔不竞许囱菜个p 遗址发邀鼗据惫。 控制台作为系统鹪控制管理巾心,负责控制和部署监控端的两终安垒策略, 并对监控端计算机上可以使用的移动盘进行认诞和管理,并打包监控端软件,以 便在特定计算机上安装。控制端将每个监控端的安全策略、移动盘的认谨信息保 存在数撬痒中,方便盎询巍管理。霹绘惑了控制孛,蠡鹩蒸统框架。 6 琵冀芝王遵大学蘸士稔交系统总体设计与美毽技零努橱 图2 醇控制台系统框架图 麓靛控端功魏攥连 每个特定诗算机必须安装藕运行用户监控戟谇,对特定诗算机进行监控。监 控端软件主要提供下列功能。 薹) 移动盘使用控制 移韵盘函兵煮携带方便、睿塞夫等特煮德剿广泛的应翔。在方便楚邂鹣网时, 也增加了信息泄漏的寅垒风险。存储在计算机上的敏感信息很容易拷贝剥移动盘 上带走,存储在移动盘上的敏感傣息因丢失等艨因很容易泄漏出去。本模块就是 麓了辩止因移蘸盘鬻攀l 超的数据瀵漏丽剖建懿模块。 模块完成移动盘识荆和文件加解密两个功熊。移动盘识别是指监控端可以识 别出经过认证的移动盘和未经认证的移动盘,并阻止未经认证的移动盘的使用。 同时,链侮存储在内部移动盘上的文件要经过加密处理,加密过程在系统虑部自 饕亮戚,对用户是透骥的,在鼋萎特定诗算机上莞洼打开这垫文髂,颦使移动盘丢 失,也不会泄漏敏感倍息。 g 黔虚拟磁盘管理 撵豫系统存在觉洼确认使鼷入身赞蓊可巍零鼗数据泄漏麓阚蘧,赞对这个阕 题,本模块给计算机增翻了用户的硬件身份认谨和计算机内文件加密功能。 计黧机登录后仍需要确认使用人的身份才可以显示计算机内的重要信息,不 仅如此,这些信息都猷密文存储,只有输入正确密码才霹辨读取。这种取鬟保护 手段能够防止计算撬巾重要信息不被非法涮览、窃取、篡改,磺鞣或删除,即使 计算机磁盘丢失或被盗,也能防止信息泄漏。 ( 3 网络监控 零模块主要盎三帮分组成:癍溺层数据内容进滤予模块、健输层诱趣请求控 制子模块以及网络鞭动层数据包过滤子模块。逸三个子模块分别利用s p l 、仍i 、 n d l s 来实现网络监撩,防止含有重要信息的数据发送出去。另外,为了健系统 不受辩郄网络的攻卷,奉模壤还提供了抗本马功戆设诗保护霸麓。项爵澍麟络架 鞫三层数器包过滤授零作简单介耀。 西北工业大学硕士论文系统总体设计与关键技术分析 1 1 应用层数据内容过滤 主要针对应用层的应用协议,如h 1 1 1 ,、s m t p 、p o p 3 等。该层的目标是根 据网络应用协议从数据包中提取信息内容,然后按照安全策略控制用户的w e b 行为以及邮件行为。 2 ) 传输层访问请求控制 主要针对主机上访问网络的程序及其网络请求,包括用户程序系统服务程 序打开本地网络端口请求、网络连接请求、发送u d p 数据包请求等。该层的目 标是控制进程访问网络的行为,任何一个进程都必须在安全策略的允许下才能访 问网络。 3 ) 网络驱动层数据包过滤 该层的目标是从全局上控制网络的访问,限制某些口地址段的主机对本机 的访问,禁止本机对某些p 地址段的访问,限制某些本地端口被访问【2 ,3 】。 三层过滤模型加深了过滤深度,扩大了网络数据的过滤范围,任何网络数据、 网络行为都不会被疏漏掉。 以上三项安全监控功能是每个特定计算机必须强制执行的,并且是在系统底 层实现的,从技术上保证了任何用户都不能逃逸安全监管。 3 控制端与监控端通信功能描述 本系统是一个紧密耦合的系统,监控端和控制端之间通过相互作用来完成行 为模式监控管理。它们之间采用最常用的一种模型一客户机服务器模型。监控 端随着操作系统的启动而启动,并向控制台登录。 当监控端发现违规操作时向控制端报告错误,监控端将错误记录在监控端相 应的日志数据库中。管理人员可以通过审计日志改变相应的监控策略,从而实现 对监控端的实时控制。 2 1 3 系统安全性设计 作为一个与安全相关的系统,系统自身的安全性就显的尤为重要。下面从系 统的构成上,分别阐述安全保护措施。 1 监控端启动的安全性 监控端随着操作系统的启动而启动进入正常的工作状态。如果操作系统启动 以后,监控端没有正常的启动,那么受控主机就不能够正常的受到监控,整个系 统就失去了防护的意义。于是,需要采取一种措施保证监控程序的正常启动。在 w i n d o w s2 0 0 0 n t ,) ( p 中,服务的启动方式为有三种:自动、手动以及禁用。为 了确保服务的正常运行必须保证服务的启动为自动方式,并不能修改为其他方 式。以移动盘使用管理模块为例,此模块的启动方式的配置是在注册表中的 h k e yl o c a lm a c h i n e 、s y s t e m c u r r e n t c o n n d l s e n r i c 如f i l t e s t a r t 下面( 详 8 西北工业大学硕士论文系统总体设计与关键技术分析 细见3 3 4 节) ,所以若能够阻止用户修改这个键值,就可以保护此模块的启动 类型为自动方式。对注册表的修改删除主要通过r e g s e t v a l u e ( e x ) 等相关函数来 进行操作的。阻止这几个a p i 函数对相关注册表的修改就可以保证启动类型的 安全本系统替换系统a p i 调用的方式,即改变系统a p i 的地址,使用户通过 操作调用上述a p i 时,操作系统自动调用自己定义的a p i 函数。如发现有试图 修改相关注册表操作时,返回给用户一个虚假信息,从而保证监控端的安全。 2 监控端文件的安全性 在安全策略的控制下,监控端实现对网络行为的监管。如果安全策略被恶意 修改或破坏,那么监控端将失去安全作用。另外,监控端还有一些用来辅助监控 的文件,如果文件被删改或破坏,将会影响监控端的正常运行。 对文件的保护方式,通过h o o k 文件或文件夹相关的a p i 操作函数来实现。 这些系统a p i 包括:d e l e t e f i l e 、c o p y f i l e 、m o v e f i l e 等。系统还提供了文件的 完整性验证,采用m d 5 单向散列算法进行文件散列值的机算和验证,从而实现 对文件的完整性验证。 2 2 关键技术 监控端是本系统的核心,它是在文件系统过滤驱动、虚拟设备驱动、n d i s 、 1 d i 以及s p i 的基础上实现的。下面介绍这些技术,包括w i n d o w s2 0 0 0 下的驱 动程序结构、w d m 驱动程序内重要的数据结构、w i n d o w s 网络体系结构以及 n d i s 、s p i 以及i i 三层接口。 2 2 1w d m 驱动程序模型 图2 - 4w i n d o w s2 0 0 0 驱动程序类型 9 西北工业大学硕士论文系统总体设计与关键技术分析 w i i l d o w s 2 0 0 0 有多种类型的驱动程序,如图2 - 4 所示。设备驱动程序是一个 包含了许多操作系统可调用例程的容器,这些例程可以使硬件设备执行相应的动 作。启动w d m 驱动程序是一种p 1 1 p 口1 u g 觚dp l a y ,即插即用) 驱动程序,它同时 还遵循电源管理协议,并能在w i n d o 粥9 8 和w i n d o w s2 0 0 0 间实现源代码级兼 容。w d m 驱动程序还细分为类驱动程序( c l a 船d f i v 神和迷你驱动程序 ( 埘【i i l i d r i v c r ) ,类驱动程序管理属于已定义类的设备,迷你驱动程序向类驱动程序 提供厂商专有的支持。p 1 1 p 驱动程序就是一种遵循w i n d o w s2 0 0 0 即插即用协议 的内核模式驱动程序。 在w d m 驱动程序模型中,每个硬件设备至少有两个驱动程序。其中一个驱 动程序为功能驱动程序,通常它就是硬件设备驱动程序。它了解使硬件工作的所 有细节,负责初始化i d 操作,有责任处理i o 操作完成时所带来的中断事件, 有责任为用户提供一种设备适合的控制方式。另一个驱动程序称为总线驱动程 序。它负责管理硬件与计算机的连接。如p c i 总线驱动程序检测插入到p c i 槽 上的设备并确定设备的资源使用情况,它还能控制设备所在p c i 槽的电流开关。 有些设备有两个以上的驱动程序,除了硬件设备驱动程序和总线驱动外,其 余的驱动程序成为过滤器驱动程序( f i l t e rd r i v e f ) 。某些过滤器驱动程序仅仅是在 功能驱动程序执行操作时进行监视。大多数情况是:硬件或软件厂商利用过 滤器驱动程序修改现有功能驱动程序的行为。上层过滤器驱动程序在功能驱动程 序之前看到i r p ( 啪r e q u e 吼p a c k e t ) ,它们有机会为用户提供额外的特征,而功能 驱动程序则感知不到。有时,一个上层驱动程序可以修正功能驱动程序或硬件存 在的毛病或缺陷。低层过滤器驱动程序在功能驱动程序要向总线驱动程序发送 i i 冲时看到啦。在某些情况下,例如当u s b 设备插入u s b 总线时,低层过滤 器驱动程序可以修改功能驱动程序要执行的总线操作流。 图2 5w d m 驱动中设备对象和驱动程序之间的关系 l o 善 西北工业大学硕士论文 系统总体设计与关键技术分析 w d m 模型使用了图2 5 的层次结构。图中左边是一个设备对象堆栈。设备 对象是系统为帮助软件管理硬件而创建的数据结构。一个物理硬件可以有多个这 样的数据结构。处于堆栈最底层的设备对象称为物理设备对象p d o ( p h y s i c a l d e 、,i c eo 巧e c o 。在设备对象堆栈的中间某处有一个对象称为功能设备对象f d 0 但u n c t i o n a ld “i c eo b j e c t ) 。在f d o 的上面和下面还会有一些过滤器设备对象 l t e rd e “c co 巧t ) 。位于f d o 上面的过滤器设备对象称为上层过滤器,位于f d 0 下面( 但仍在p d 0 之上) 的过滤器设备对象称为下层过滤器。操作系统的p 1 1 p 管 理器按照设备驱动程序的要求构造了设备对象堆栈。 可以把一个完整的驱动程序看作是一个容器,它包含许多例程,当操作系统 遇到一个i r p 时,它就调用这个容器中的例程来执行该口r p 的各种操作。有些 例程,例如d r i v e r e m r ) r 和a d d d e 、,i c e ,还有与几种时对应的派遣函数将出现 在每一个这样的容器中。 总线驱动程序的一个任务就是枚举总线上的设备,并为每个设备创建一个 p d o 。一旦总线驱动程序检查到新硬件存在,p l l p 管理器就创建一个p d o ,然 后开始描绘图2 5 所示的结构。 创建完p d o 后,p n p 管理器参照注册表中的信息查找与这个p d o 相关的过 滤器和功能驱动程序,它们出现在图2 6 的中部。系统安装程序负责添加这些注 册表项,而驱动程序包中控制硬件安装的文件负责添加其它表项。这些表项定义 了过滤器和功能驱动程序在堆栈中的次序。p n p 管理器先装入最底层的过滤器驱 动程序并调用其a d d d e v i c e 函数。该函数创建一个f i d o ,这样就在过滤器驱动 程序和f i d 0 和之间建立了水平连接。然后,a l d d d l c 、,i c e 把p d o 连接到f i d 0 上, 这就是设备对象之间连线的由来。p l l p 管理器继续向上执行,装入并调用每个低 层过滤器、功能驱动程序、每个高层过滤器,直到完成整个堆栈。 层次结构可以使请求过程更加明了,见图2 5 的右侧。每个影响到设备 的操作都使用i o 请求包i r p 。通常l r p 先被送到设备堆栈的最上层驱动程序, 然后逐渐过滤到下面的驱动程序。每一层驱动程序都可以决定如何处理冲。有 时,驱动程序不做任何事,仅仅是向下层传递该i r p 。有时,驱动程序直接处理 完该i r p ,不再向下传递。还有时,驱动程序既处理了琢p ,又把i r p 传递下去。 这取决于设备以及心所携带的内容。 在单个硬件的驱动程序堆栈中,不同位置的驱动程序扮演了不同的角色。功 能驱动程序管理f d o 所代表的设备。总线驱动程序管理计算机与p d o 所代表设 备的连接。过滤器驱动程序用于监视和修改i i 冲流。由于设备对象与驱动程序软 件之间关系紧密,有时使用f d o 驱动程序来代表功能驱动程序,用p d 0 驱动程 序来代表总线驱动程序附】。 西北工业大学硕士论文系统总体设计与关键技术分析 2 2 2w d m 驱动程序数据结构及入口函数 驱动程序中的数据结构在驱动程序的构造和实现中起到很大的作用,下面介 绍驱动程序中一些重要的数据结构。在下面表示数据结构的图中,透明域( 可以 直接访问的域) 用黑体字表示。 1 驱动程序对象 l 管理器使用驱动程序对象来代表每个设备驱动程序,见图2 6 t y p c s i z e d e i v e o b j e c t f 1 a g s d r i v e r s t a r t d f i v e r s i z e d f i v e r s e c t i o n d r v i e r e x t e n s i o n d r i v e r n a m e h a r d w a r e d a t a b a s f a s t l o d j a p a t c h d r i v e r i n i t d r i v e r s t a n i o d r i v e r u n l o a d m a j o r f u n c t o n 图2 - 6d i u v 髓:o b j e c t 数据结构 d e “c e o b j e c t ( p d e v l c eo b j e c d 指向一个设备对象链表,每个设备对象代 表一个设备。m 0 管理器把多个设备对象连接起来并维护这个域。 d r i v e r e x t e f l s i o n ( p d r j v e re x t e n s i m 妁指向一个子结构,其中只有 a d d d “i c e ( p d m v e ra d dd e v i c e ) 成员可以直接访问。a d d d e v i c e 是一个指 针,它指向驱动程序中创建设备对象的函数。 h 鲫d w a r e d 吨i b 勰e ( p u n i c o d es t r i n g ) 指向一个串,该串为设备的硬件数 据库键名,保存着该设备的资源分配信息。w d m 驱动程序无需访问该键下的信 息,因为p i l p 管理器自动执行资源分配。 f a s t i o d i s p a t c h ( p f a s t1 0d l s p a t c h ) 指向一个函数指针表,这些函数是由 文件系统和网络驱动程序输出的,其他类型的驱动程序不使用这个表。 1 2 西北工业大学硕士论文 系统总体设计与关键技术分析 d r i v e r s 伽咀。口d r e rs n 堰1 1 0 ) 指向驱动程序中处理串行请求的函 数,管理器自动为驱动程序串行化多个i ,o 请求。 d r i v e r i m i o a d ( p d v e ru 】q l o a d ) 指向驱动程序中的清除函数。 m 萄o r f 岫c t i o n ( 舭a yo f p d r i rd i s p a t c 功是一个函数指针表,指向存在 于驱动程序中的二十多种冲处理函数。 2 设备对象 系统为帮助软件管理硬件而创建的数据结构。驱动程序可以调用函数 i o c r c a t e d e v i c e 创建设备对象,但设备对象的管理则由管理器负责。图2 7 显示了设备对象的数据结构下面介绍设备对象的各个域。 t 1 m e s i z e r e f e r e n c e c o u n t d r i v e r o b j e c t n e x t d e v i c e a t t 舵h e d d e v i c e c u r r e n r p t i m 盯 f l a 鼬 c h a r a c t e r i s t i c s d e v i c e e x t e n s i o n d e v i c e t y p e s t a c k s i z e a l j g n m e n t r e q u i r e m e n t 图2 7d i v i c e _ o b j e c t 结构 d r i v e r o b j e c 妒d i u v e ro b j e c d 指向与该设备对象相关的驱动程序对象。 c 峨n t i 顺p i r p ) 指向最近发往驱动程序s t a n i o 函数的i ,o 请求包。 n c x t d e “c e ( p d e v i c eo b j e c d 指向属于同一个驱动程序的下一个设备对 象。这个域把多个设备对象连接起来,起始点就是驱动程序对象中的 d e v i c e o b j e c t 成员。w d m 驱动程序无需使用这个域。 c h a m c t e r i s t i c s ( u l o n g ) 是另一组标志位,描述设备的可选特征,见表2 1 。 i ,o 管理器基于i o c r e a t e d e v i c e 的一个参数初始化这些标志。过滤器驱动程序沿 设备堆栈向上方传播这些标志。 西北工业大学硕士论文系统总体设计与关键技术分析 f l a g s ( u l o n g ) 包含一组标志位。见表2 - 1 。 d e v i 皑聊p e ( d e c e - t ,e ) 是一个枚举常量,描述设备类型。 d o - - b u f f e r e d - j o读写操作使用缓冲方式( 系统复制缓冲区) 访问 用户模式数据 d o _ _ d i i 也c 1 - - i o读写操作使用直接方式( 内存描述符表) 访问用 户模式数据 d e v i c e e x t e i o n ( p v 0 i d ) 指向一个由用户定义的数据结构,该结构可用于保 存每个设备对象的信息。的管理器为该结构分配空间,但该结构的名字和内容 完全由用户决定。一个常见的做法是把该结构命名为d e c ee ) 订e n s i o n 。使 用给定的设备对象指针f d o 可访问这个用户结构,代码如下: p d e v l c i 弛x t e n s i o np d x = ( p d e v i c e t e n s i o n ) f d o d e v i c e e x t e n s i o n ; 3 i r p 操作系统使用i i 冲与内核模式驱动程序通信,图2 罐给出了i i 心的数据结构。 t ,p e s i z e m d i a d d r e s s f l a g s a s s o c i a t e i r p n 鹏a d l i s t e n 竹 i o s t a t u s r e q u e s t o r m o d eip e n d i n # 诹e t u m e d s t a c k c o u n t c u r r e m l o c a t i o n c a n c e l ic a n c e l l r q la p c e n 啊r o 衄e n ta l l o c a t i o i l f l a g s u s e r i o s b u s e r e v e m o v e r l a y c a n c e l r o u t i n e u s e r b u f f e r t a i l 图2 8i r p 数据结构 1 4 西北工业大学硕士论文 系统总体设计与关键技术分析 m d l a d d r c s s ( i ,m d l ) 域指向一个内存描述符表( m d l ) ,该表描述了一个与该 请求关联的用户模式缓冲区。如果顶级设备对象的f l a g s 域为d o - d i l 匝c 1 - - i o , 则管理器为i r pm jr e a d 或i r pm jw r n e 请求创建这个m d l 。如果一 个冲m jd e v i c ec o n t r o l 请求的控制代码指定m e l l o d 叮d 匝c t 或 m e t h o do u td i r e c t 操作方式,则i o 管理器为该请求使用的输出缓冲区创 建一个m d l 。m d l 本身用于描述用户模式虚拟缓冲区,但它同时也含有该缓冲 区锁定内存页的物理地址。 f l a g s ( u l o n g ) 域包含一些对驱动程序只读的标志,但这些标志与w d m 驱 动程序无关。 a s s o c i a t c d i r p ( 眦i o n ) 域是一个三指针联合。其中,与w d m 驱动程序相关的 指针是a s s o c i a t e d i r p s y s t e m b u 妇f e r 。s y s t c l i l b u 妇衙指针指向一个数据缓冲区,该 缓冲区位于内核模式的非分页内存中。对于i r pm j j 也a d 和i r pm jw i u t e 操作,如果顶级设备指定d ob u f f e r e di o 标志,则i o 管理器就创建这个数 据缓冲区。对于冲m j j ) e v i c ec o n n l 操作,如果i o 控制功能代码指出 需要缓冲区,则i o 管理器就创建这个数据缓冲区。i o 管理器把用户模式程序 发送给驱动程序的数据复制到这个缓冲区,这也是创建i i 冲过程的一部分。这些 数据可以是与w m e f i l e 调用有关的数据,或者是d e v i c e i o c o n 的l 调用中所谓的 输入数据。对于读请求,设备驱动程序把读出的数据填到这个缓冲区,然后的 管理器再把缓冲区的内容复制到用户模式缓冲区。对于指定了 m e t h o db u f f e r e d 的i o 控制操作,驱动程序把输出数据放到这个缓冲区, 然后加i 管理器再把数据复制到用户模式的输出缓冲区。 i o s 觚s ( i os 1 唧r sb l o c k ) 是一个仅包含两个域( s t a t i l s 和h f b m m t i ) 的结构,驱动程序在最终完成请求时设置这个结构。i n f b m a t i o n 的一个公认用法 是用于保存数据传输操作,如i r pm j 砌a d 的流量总计。 r e q u e s t o f m o d e 将等于一个枚举常量u s 叫咖d e 或k 锄e l m o d c ,指定原始加 请求的来源。驱动程序有时需要查看这个值来决定是否要信任某些参数。 p e n d i n g r c t 明坨d ( b o o l e m d 如果为t r i 虺,则表明处理该心的最低级派 遣例程返回了s 1 7 sp e n d i n g 。完成例程通过参考该域来避免自己与派遣例 程间的潜在竞争。 c 锄c e l ( b o o l e m d 如果为t r i m ,则表明i o c 黜e l i r p 已被调用,该函数用 于取消这个请求。如果为f a l s e ,则表明没有调用i o c a n c c l i r p 函数。 c 髓c e l i r q l r q l ) 是一个瓜q l 值,表明那个专用的取消自旋锁是在这个 瓜q l 上获取的。当你在取消例程中释放自旋锁时应参考这个域。 c 锄c e l r d u t i 肿( p d i u v e rc a n c e l ) 是驱动程序取消例程的地址。 露魏王监太学硕士谂文系统慈体设诗萼曩瓣技术分辑 u 蝴b u 舵r ( p v o i d ) 对于凇朔o dn 馘糟m 豫方式娩设备控制请求,该域 包禽输出缓冲区鹃惩户模式蕊披媳址。该域遥用于僳存读篝请求缓冲医懿用户模 式康擞地址,餐指定了d o 静鼯擎擎秘湿d 硒或弱婚潞礤标意鹩驱动程序, 其读篱例程通常不需要访问这个域。当处理一个m 哪| o l dn e n h e r 控制操作 时,驱动程序麓用这个地址创建囱己的m 鞫呶。 拳弘。泓e 瓢 任何内核模式程序在创建一个础时,同时还稍建了一个与之关联的 i o8 强c k l o c 棚o n 结构数组:数组中盼每个堆栈单元都对应一个将处理该 翻鼹酶驱动覆穿,另磐透有一个堆栈单元供澍撵的创建誊健潮,见图黧毋。堆撬 单元中包含该瓣的类型代码和参数信意戳及完成函数的地址。 m 苟o r f l l l l c t i 懒( u c 是该i r p 的燕功能码。这个代码虞该为类似 融,娴r e a d 一榉婀值,并与驱动程序对象中m 萄蒯阻瞅i 潍表的某个派遣函 数攒钟相对应。 m i n o 最m 蕊i o 删c h a r ) 是该翻盱的尉功能码。它迸一步指出该驷肿属于哪 个主功能类。 m 萄0 1 f u 魏e 害i o n i 镊l 糕o l 僵i l l 珏e 耋董。觳 硎襄馨薅卜 e 。魏t m l p a r a m l e t e 兽 d 姆i e 鹱鞫露e l 蘩i l e o 两e e 垂 e o m p l e t i o 聩r o u t i n e c o n t e 薰妻 豳2 掺鼢瞅e 整数瓣结构 p 跚a m e t e r s ( 喊。螂是几个予结构的联合,每个请求类黧都有自己专用的参数, 丽簿个子结构就避一静参数。 粉错i e c 。嗡巅 感强c 露谨e 是与该堆栈单元对纛盼设备对象姻地缝。 该域由i o c a l l 蹦埘函数负责填写。 豫e o 秘e c p 擎i l 嚣嬷e 是内棱文件对蒙的地蛙,薹i 愆的疆标就是这个文 粹对象。驱动程序逢嚣在楚瑾清除请求双爹瓣魏墨矗熊鬻瞬使用雾i l 蛰;巷c 耄指 针,以区分队列中与该文件对象无关的驸。 c 帆p l e _ 【i o 娥,o m 赫俨i o c o m p u 饼呵r o u l - i n e ) 是一个o 完成例程的地 缝,该缝蛙是蠹萼这个堆我肇巍瓣应的驱动程潜麴更上一滠驱动程痔谖鬟鹃。雨 麓豢接设置这个蠛,应该调用l o s 战e 避l 硝燃i 镑勰。o u 畦聆爵教,该函数知道如何参 量6 莲羹艺王照大攀矮圭谂文 系统总体竣静莓美键毅拳转橱 考下一层驱动程序的堆栈单元。设备堆栈的最低一级驱动程序并不需要完成例 程,露秀它稠必须壹接究成请求。然而,请求鲶发起者有时确窭需要一个完成铡 程,毽通常没有鸯基鹩堆棱单元。遮就是为待么每一缀驱动纛窿都使用下一缀驱 动程序的堆栈单元保襻自己完成例獠指针的原因。 c 鳓锨蜒w o i d ) 是一个任意的与上下文相关的值,将作为参数传递给究成侧 程它由孙s 鼢搿巍溯融删蕊函数纛动设置,蒸值来自该随数的某个参数瓣。 5 。入网豳数d 姗
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年上海单招文化素质统一考试经典题含答案2022-2025年含解析
- 2025脓毒症相关试题及答案
- 2024华为HCIP-Datacom认证真题(5G切片技术)
- 吉县2025山西临汾吉县事业单位招聘60人笔试历年参考题库典型考点附带答案详解(3卷合一)
- 2026 年中职建筑工程施工(地面施工技能)试题及答案
- 2025陕西省物流集团有限责任公司招聘117人笔试历年备考题库附带答案详解
- 2026年社区发展项目合同
- 2026年代理销售合同模板
- 2025贵州赤水恒迅建筑工程有限公司项目管理人员聘任制招聘13人笔试参考题库附带答案详解(3卷)
- 2025西安秦达物业管理有限责任公司招聘(10人)笔试参考题库附带答案详解(3卷)
- 国网环水保知识培训班课件
- (正式版)DB54∕T 0275-2023 《民用建筑节能技术标准》
- GB/T 46111-2025农村易腐垃圾太阳能辅助堆肥处理技术规范
- 2025年安全员之江苏省C2证土建安全员题库附答案
- DB11-T 2482-2025 城镇公共供水服务规范
- 客户开发与客户维护课件
- 测绘安全培训课件图片
- 2025年食品安全员考试试题库+答案
- 广东薪酬管理自考试题及答案
- 静脉曲张护理个案记录范文
- 严格电话使用管理办法
评论
0/150
提交评论