




已阅读5页,还剩86页未读, 继续免费阅读
(计算机软件与理论专业论文)内网安全中硬件设备控制的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着计算机技术的发展和网络的广泛应用,大多数企业都通过内部网络作为 信息管理和数据传输的平台。内部网络在提高企业运行效率的同时,也为企业内 部带来了安全隐患。研究表明,利用各类硬件设备存储工具从企业内部直接带走 信息已经成为了信息流失的主要方式。因此,保障企业内部网络安全的当务之急 就是控制硬件设备的使用。 目前,国内外对于内部安全系统中硬件设备控制领域的研究,主要是针对光 驱n 录机、软驱、串并口和u s b 口等设备。但是,多数都只能对以上设备在应 用级进行简单的启禁或屏蔽,并存在控制粒度粗等尚需解决的问题。 本文是作者在参与一个企业内部网络安全管理系统的研究和设计之后,对硬 件设备控制所涉及的理论及技术进行的总结。该项目主要基于w i n d o w s 系统平台 实现一个内网安全管理系统,由客户端、服务器和控制台构成,实现泄密防护、 文件安全服务、运行状态监控、系统资源管理等四个方面的安全保障。 在该系统中,要实现对各种常用硬件设备的控制,必须基于w i n d o w s 操作系 统的驱动程序构架。其中,w d m 驱动程序是即插即用外围设备所采用的驱动类型。 因此,在本文的实践过程中,作者对w d m 驱动程序的结构、原理和编程技术进行 了深入的研究和实践,并综合运用了w i n d o w sd d k 、d r i v e rs t u d i o 等工具实现了 所承担任务的研发工作。在此过程中,作者完成的主要工作为: 1 实现了对几种设备的控制。不仅有简单的启禁控制,更有单向传输、双 向传输等多种控制方式,控制粒度细,极大地增强了系统的灵活性和可用性。 2 实现了从驱动层对设备进行控制,代码运行在内核级,响应时间短。 在论文的组织上,作者从研究背景到国内外的研究现状均进行了分析和总结。 在此基础上,详细阐述了内部网络安全管理系统的设计方案以及各功能模块之间 的关系与通信。随后对硬件设备控制模块进行了深入的解析,不仅分析了模块实 现原理和关键例程,也给出了最终的相关测试数据。最后作者就论文的主要成果 和存在的问题进行了总结,并提出了进一步完善的思路。 关键词:内网安全,硬件设备控制,w d m ,过滤驱动程序 a b s t f a c t a b s t r a c t a st h er a p i dd e v e l o p m e n to fc o m p u t e rt e c h n o l o g ya n dt h ew i d eu s i n go ft h en e t w o r k s , m o s te n t e r p r i s e su s ec o m p u t e r sa st h em a i nt o o lf o rm a n a g i n gi n f o r m a t i o na n dd a t a i t m a k e st h ee n t e r p r i s e sr u nm o r ee f f i c i e n tb u ta l s ob r i n gi ns o m es e c u r i t yp r o b l e m s s o i t si m p o r t a n tt or a i s et h es e c u r i t yl e v e la n dt ok e e pi t sc o n v e n i e n c e s o 缸a l lt h er e s e a r c h e so nt h i sa r e aa r ef o c u so nc d d v d r o m + - r w , f l o p p y d r i v e ,c o m ip ta n du s bd e v i c e s b u tm o s to ft h e mc a no n l ys i m p l yf o r b i do rs h i e l d t h o s ed e v i c e si nu s e r s m o d e ,w h i c hl e a dt oc o a r s ec o n t r o lg r a n u l a r i t y t l l l i sd i s s e r t a t i o ni st h ea u t h o r st h e o r ys u m - u pa n di m p r o v e m e n ta f t e rj o i n i n gi nt h e d e v e l o p m e n to fa ni n t r a n e ts e c u r i t ym a n a g e m e n ts u b j e c tw h i c hi sb a s e do nw i n d o w s o p e r a t i n gs y s t e m s i t sm a d eu po fc l i e n t s ,s e r v e r sa n dc o n t r o lp a n e l s ,a n dp r o v i d e s c i p h e rp r o t e c t i o n , f i l e ss e c u r i t y , s t a t em o n i t e r i n ga n ds y s t e mr e s o u r c em a n a g e m e n t n es y s t e mh a st ob eb a s e do nw i n d o w sd r i v e ra r c h i t e c t u r e 。e s p e c i a l l yt h ew d m w h i c hi sak i n do fd r i v e ro fp wd e v i c e s s ot h ea u t h o rh a dad e e pr e s e a r c ho nw d m a r c h i t e c t u r e ,t h e o r ya n dp r o g r a m m i n gt e c h n o l o g y a n dp r o g r a m m e dt h ed r i v e r sw i t hl o t s o ft o o l ss u c ha sw i n d o w sd d kd r i v e rs t u d i oa n ds oo n n e f o l l o w i n ga r et h ea u t h o r sm a i n l yw o r kd u r i n gt h er e s e a r c h : 1 n o to n l yp r o v i d e sc o m p l e t e l yf o r b i d d i n gm o d e ,b u ta l s ot h er e a d o n l ya n d w r i t t e n o n l ym o d e c a nf i ta l lk i n d so f u s e r s d e m a n d s 2 c o n t r o lt h ed e v i c e si nt h ek e r n e lm o d e t a k e sl i t t l et i m et om r 码ew h o l ed i s s e r t a t i o ni so r g a n i z e dl i k et h i s :a n a l y z e st h eb a c k g r o u n da n dt h e r e s e a r c hs i t u a t i o no ft h i st o p i cf i r s t d e m o n s t r a t e st h ed e s i g no ft h ei n t r a n e ts e c u r i t y m a n a g e m e n ts y s t e m a n dh o wt h em o d u l e sc o m m u n i c a t ew i t ho n ea n o t h e r t h e n d e s c r i b e st h ei m p l e m e n to ft h ew h o l eh a r d w a r er e s o u r c e sm a n a g e m e n ts y s t e ma n dg i v e s t h et e s td a t a a tl a s tt h ea u t h o rg i v e st h ec o n c l u s i o no ft h em a i nr e s u l t sa n dt h ef u r t h e r w o r k k e y w o r d s :i n t r a n e ts e c u r i t y , h a r d w a r ed e v i c ec o n t r o l ,w d m ,f i l t e rd r i v e r 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明 确的说明并表示谢意。 扫蟊牛月2 佃 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:导师签名: 日期:2 0 0 第一章绪论 第一章绪论 1 1 课题来源及研究背景 近年来,随着计算机及通信技术的迅猛发展,全球信息化步伐日益加 快,现代计算机网络已成为信息社会的基础设施,渗透到社会的各个方面。 各行各业纷纷以单位甚至部门为基础,建立起自己的内部网络。网络的“核 心问题是资源共享。其目的是让网络上的用户,无论他处于什么地方,也无 论资源的物理位置在哪里,都能使用网络中的程序、设备,尤其是数据。也 就是说,用户使用千里之外的数据就像使用本地数据一样。”“1 计算机网络 的发展,给人们的工作和生活带来了极大的方便,但是,由于网络系统的开 放性、信息资源的共享性、通信信道的公用性、连接形式的多样性等,使网 络存在很多严重的脆弱点。因此,既要使网络开放又要使网络安全,已成为 网络建设及安全的重大因素。 内部网络在某种程度上,对于资源的合理化分配,对于工作效率的提高, 都起到了积极的促进作用。但另一方面,随着网络技术的发展和网上各种应 用的不断丰富,网络安全问题,尤其是基于内部网络以及以内部网络为应用 平台的应用系统,其安全性正面临着严峻的考验。据有关部门统计,2 0 0 5 年 发生泄露国家秘密的事件猛增1 0 0 ,其中网络泄密占6 0 。因此,对于内部网 络的信息管理尤为重要。1 由于内网是一个由网络设备与信息系统组成的复杂环境,连接便捷、应 用系统多、重要数据多是其显著特点,如果疏于对内网的安全防范,那么就极 易出现应用系统被非法使用、数据被窃取和被破坏等情况。所以,注重内网 安全系统建设、有效防范源自内部的安全问题,其意义较之于外网安全防范 更为重大。 目前,基于内部网络的安全问题,人们常常存在以下误区: 误区一:在网络安全部署策略中更多地注重网络边界的安全,如认为只 要将内外网物理隔离、安装防火墙、入侵检测系统、杀毒软件等相关软件后, 就不再需要专门的安全产品了。 1 电子科技大学硕士学位论文 误区二:网络信息系统已经建设很多年了,内部从来没有出过问题,因 此不需要专门的内网安全管理软件。 然而,实际情况如何呢? 根据2 0 0 5 年美国c s i f b i 提供的计算机犯罪安全调查报告显示 1 ,8 3 以上的信息安全事件为内部人员或内外勾结所为。中国国家信息安 全测评认证中心的调查结果也表明,信息安全问题主要来自泄密和内部人 员犯罪,而非病毒和外来黑客引起。所以说强大的堡垒最容易从内部攻破。 根据美国相关安全部门对4 8 4 家企业的信息安全威胁进行调查“1 ,结果 显示: 有8 5 的企业受到的信息安全威胁来自企业内部; 有1 6 的企业存在内部未授权存取的问题; 有2 4 的企业曾遭遇专利信息被内部人员窃取; 有1 2 的企业曾遭遇内部人员的财务欺骗; 有1 1 的企业曾遭遇资料或网络被破坏; 由于内部人员泄密导致了6 0 5 6 5 万美元的损失,是黑客造成损失1 6 倍,是病毒造成损失的1 2 倍。 在我国,也存在同样的情况。根据公安部最新统计表明。1 : 7 0 的泄密犯罪来自于企事业单位内部; 8 0 的企事业单位未对内部电脑运用设立相应的安全管理; 5 8 的企事业单位未对内部电脑制定严格的调存管理制度。 综合目前所有的信息安全的案例来看,来自局域网内部的安全威胁主 要有以下几种表现形式: 内部人员私自以拨号等方式上互联网; 内部人员随意安装、使用可移动的存储设备; 内部人员安装、使用非法软件或黑客软件; 内部人员恶意或非恶意地更改i p 地址; 内部人员窃取、传播违禁、机密的文档、图片、视频等媒体资料; 总结由于内部人员造成的安全事件,可以看到以下三个特点”1 : 第一内部人员最容易接触敏感信息,并且他们的行动具有针对性, 危害的往往是最核心的数据、资源等。 第二一般说来,各机构的信息安全保护措施都“防外不防内”,比 如很多公司赖以保障其安全的防火墙对内部人员攻击毫无作用,形同虚设。 2 第一章绪论 第三内部人员对机构的运作、结构、制度等情况非常熟悉,导致他 们行动时不易被发觉,事后难以被发现。 所以,如果忽略了对局域网内部计算机设备的管理和监督,就会使内外 网之间的层层设防形同虚设,网络根本谈不上安全二字。同时,近两年来, 中国信息安全软件销售额约1 9 0 亿元,约1 4 0 0 万家企业有信息安全需求h 1 。 有鉴于此,本课题组在对国内外内网安全管理系统的研究现状、存在隐患、 发展趋势等相关问题进行广泛了解的前提下,拟研制出基于“内部用户不可 信”前提的内网安全管理系统。该系统可以有效的保护企业机密资料不被窃 取,控制内部用户对主机和网络的使用,防止内部违规行为的发生,增强企 业内部的安全性,同时系统具有强大的日志功能,对用户非法行为进行详细 记录,以便相关人员日后审查、取证,增强企业内部事件的可追查性。 1 2 国内外同类研究工作和成果 局域网网络安全监控以及主机安全保护在各个行业都有极大的应用空 间,当前采用的基本技术包括网络主机实时监控、单机网络注册、主机安全 保护、网络行为监控、主机设备控制,这些技术能有效的满足基于局域网的 各种应用网络的安全与管理要求,当前市场上已有多款这类产品,基本上都 能满足用户的管理和安全需求,但开发效率和使用健康度等方面则并不是很 理想,下面将分别介绍一下几款同类产品的技术特点。 国内某技术公司:局域网实时安全监控与审计系统主机安全保护系统嗍 一系统功能: 1 )管理器能自动识别局域网的网络拓扑,图形化显示被监控对象的状态; 2 )监控代理基于安全策略,实时监控被监视对象,并在有违规事件发生时自 动纪录并报警; 3 )系统识别非授权主机的非法接入行为,并予以阻止; 4 )系统能识别主机的非法嗅探工作模式,并予以阻止; 5 )系统具有强审计功能,包括事件审计、主机日志审计; 6 )支持群组管理,将监控对象划分为不同的安全组,按照组的脚色权限进行 管理: 7 )支持多管理员角色,能区分系统管理员和安全审计员; 3 电子科技大学硕士学位论文 8 )系统自身有极强的安全性,能抗欺骗、抗篡改、抗伪造、抗嗅探、抗重放 等攻击; 二性能指标: 1 )系统支持被监控对象数大于1 0 2 4 ; 2 )支持对多个子网的局域网控制; 3 )对被监控对象网络应用行为的识别和阻断率大于9 8 ; 4 )对被监控对象计算机外部设备的使用及控制率为1 0 0 ; 5 )对网络内部处于非法嗅探工作模式机器的识别率大于9 5 ; 6 )对未许可主机非法接入网络行为的识别率为1 0 0 ; 国内某网络信息管理系统: 一系统功能; 1 )用户身份认证:在网络环境中实现强双因子安全身份认证,用户在任何时 间拔出k e y ,系统立即锁定,同时服务器端软件具有强大的终端用户管理、监控 和服务功能,可以实现对用户身份载体的集中发放,用户信息修改、用户注销、 信息查询。 2 )终端资源访问控制:网络信任管理系统控制中心可集中对终端资源进行控 制,网络管理员可以方便的对授权终端的硬盘分区、光驱、软盘、u 盘、移动硬 盘及打印设备进行授权管理,也可以对终端的上网策略、下载策略、进程策略进 行集中配置,同时终端授权用户可使用文件保密柜对文件进行保密。 3 )终端资源使用情况审计:网络信任管理系统控制中心提供强大的审计功 能。具体包括:登出登入审计、开启关闭窗口审计、进程审计( 程序执行的情况 审计) 、文件审计并将以上信息记录在审计中心,防止行为抵赖。 4 )网络用户工作状态监控:管理员可对终端上的指定应用程序( 如聊天软件、 游戏软件等) 使用进行限制;通过抓屏监控终端,能对终端用户提出警告,进而 注销、所顶、重启、关闭终端。 5 )文件加解密:提供对文件及文件夹的加解密功能。 二技术特点: 1 )系统通过硬件与用户密码结合的双重验证机制,使系统的权限管理、身份 认证、安全挂起具有强制性和不可回避性; 2 )网络信任管理系统控制中心可以集中对终端进行监控,管理和审计; 3 )提供强大的审计功能,对审计文件采用密文保护; 4 第一章绪论 4 )提供文件保密柜,文件存取过程中加解密操作对用户透明; 5 )支持微软的w i n d o w s 2 0 0 0 x p 等各种操作系统乎台,适用性强; 6 )支持多种密码算法,适应不同的加密要求; 国外某计算机网络安全控制系统n 0 1 计算机网络安全控制系统采用中央控制台加客户端的布局。由服务器端监控 各安装客户端计算机的状态。客户端随操作系统一起自启动,以后台程序方式运 行,对用户完全透明。 一,客户端实现的功能有: 1 ) 屏蔽u s b 设备( 限制u s b 、停止u s b ) :停止所有u s b 设备的使用,包括u 盘,数码相机、m p 3 等u 口设备; 2 )禁止软驱:禁止软盘的使用; 3 )屏蔽键盘输入:禁止键盘的使用,用户对所有除s h i e l dc l i e n t 之外的其 他程序键盘输入均无效; 4 )屏蔽某些程序的使用,可由服务器端控制; 二中央控制台( 服务器端) 实现的功能有: 1 )监控客户端状态:监视网络中所有s h i e l d 客户端的状态,一旦有客户端 非法关闭,发出报警信息; 2 )控制客户端u s b 移动设备的使用,停止u s b 设备的使用,限制u s b 设备的 使用,启动u s b 设备的使用; 3 )控制客户端屏蔽键盘字符数; 4 )控制客户端光驱、软驱的使用; 5 )控制客户端某些程序的使用; 6 )控制客户端的退出;( 共享版不支持) 7 )日志管理:记录日志,包括每客户端的启动、关闭,每一个开机运行时段 的屏蔽状态,包括u s b 设备的限制与起用、软驱和光驱的限制和使用、限制使用 的程序名称。 计算机网络安全控制系统有效解决企业中电子信息的泄漏问题,保障企业信 息的安全;集中监控网络中u s b 设备、软驱、光驱的使用以及某些程序的使用, 一定程度上保障了企业局域网的安全环境,杜绝了病毒感染的可能性;有效解决 员工上班时间使用的一些类似于q q 等非工作相关软件,维护企业利益。 以上列出了三种比较典型的局域网监控产品,从列出的功能和技术参数可以 5 电子科技大学硕士学位论文 看出,这些产品基本都支持一般的管理需求,但对于一些安全高要求,应用灵活 性的场合,则显得有些不足,本项目除了实现一般的监控功能,还将提供以下功 能指标: 1 )实现身份认证和权限管理的分离:当前的局域网管理软件通常将用户身份 信息和用户权限信息都保存到一个u s bk e y 中,要修改用户权限比较困难。本系 统实现了用户身份认证和用户权限管理分离,管理员可以方便的修改用户权限, 并直接作用到客户机; 2 )同时提供基于用户和基于主机的安全性:当前的局域网管理软件通常只实 现了基于用户的安全性,通过用户身份信息判断用户权限,但在较大的局域网环 境中往往要求限制用户在不同主机上的操作权限,例如某些主机只有特定用户才 能访问。本系统同时提供基于用户和基于主机的安全性,由登录的用户账号和所 登录的主机一起决定用户在主机上的操作权限; 3 )对关键文件的跟踪控制:当前的局域网管理软件通常只实现了基于用户的 安全性,通过用户身份信息判断用户权限,但在较大的局域网环境中往往要求限 制用户在不同主机上的操作权限,例如某些主机只有特定用户才能访问。本系统 同时提供基于用户和基于主机的安全性,由登录的用户账号和所登录的主机一起 决定用户在主机上的操作权限; 4 )开发过程严格按照规范进行,从文档设计到程序编码,按照统一的风格完 成,使后续开发以及高级用户的定制成为可能 除上述系统功能指标之外,本系统还具有以下特点: 1 )基于x m l 语义信息的安全策略描述:随着技术的进步,需要监控的对象会 不断增加,采用基于x m l 语义信息的安全策略描述使系统具有良好的可扩展性, 可在不更改已有系统的前提下进行扩充系统监控对象;此外所有主机间通信信息 均) 【 i l 信息化,不但标准化内部信息沟通,且方便与其它系统集成,特别适合与 已有一定管理系统的用户; 2 )自动子网监控:当前的局域网管理软件在执行子网监控时往往需要在子网 中配置一台主机作为监控代理,此台主机必须一直处于活动状态,一旦此主机发 生故障或被关闭,服务器无法了解子网的网络情况;而本系统中的每一台活动主 机都可以执行监控任务,由服务器指派每个子网中负责子网监控的主机,无需配 置专门的子网监控代理;如果负责执行子网监控的主机因某种原因无法担任监控 任务,服务器可以自动指派其它主机接替,只要子网中有一台主机处于活动状态, 服务器就可以有效了解子网的情况; 6 第一章绪论 3 )自主安全域管理,实现自定义的用户身份认证管理方案,根据自定义的用 户身份实现局域网中的安全管理; 1 3 设计目标和论文结构 本课题任务来自于某企业“内网安全管理系统研制”项目。该项目主要基于 w i n d o w s 系统平台,研究、设计并实现一个内网安全管理系统。本系统实际上就 是一种内网安全产品。该系统由客户端、服务器和控制台等三部分构成, 实现泄密防护、文件安全服务、运行状态监控、系统资源管理等四个方面 的安全保障。 本人在这个项目中主要负责的工作是完成内网安全管理系统中客户端的硬件 设备控制关键技术研究与实现。具体包含了u s b 接口、光驱刻录枧、软驱、串 并口的控制。同时,本人密切配合项目组其它成员,积极参与内网安全管理系统 的整体设计。 在本人完成的工作中,主要在以下方面体现了创新性和难度性: 第一实现了内核级的设备控制,使得性能相较于应用级的设备控制有了极 大地提升。同时便于扩展。 第二对硬件设备的控制粒度细。除了其它同类研究可达到的单纯的启用、 禁用功能,还可以对读写操作进行控制,让设备与主机进行单向或双向传输。 本论文共分为六章。论文结构如下: 第一章阐述了课题来源及研究背景、以及国内外同类的研究工作,并比较了 所取得的研究成果,最后提出了本课题所要完成的任务,介绍了论文的内容安排。 第二章对完成本论文需要的基础知识进行了总体介绍。包括w i n d o w s x p 操作 系统以及w i n d o w s 驱动程序分类的简要概述。随后又详细对w d m 驱动程序研究所 涉及到的知识进行了介绍,包括w d m 驱动程序模型、w 1 ) m 设备对象和驱动程序的 层次结构、过滤驱动程序、w d m 编程技术等。 第三章详细介绍了内网安全管理系统的整体设计以及硬件设备控制模块在系 统中的位置和作用。对内网安全管理系统整体设计的介绍包括:体系结构、数据 流程,以及分模块概述。在本章最后,简要分析了硬件设备控制模块在整个系统 中的作用。 第四章介绍了硬件设备控制模块的详细设计。包括了模块结构、数据流程、 7 电子科技大学硕士学位论文 接口设计、以及实现过程,并对实现原理和关键例程进行了说明。 第五章为测试。该章首先简要介绍了测试用例设计,随后对于硬件设备控制 模块内部的各个功能模块进行了测试,并给出了测试结果。 第六章对全文进行了总结,并且提出了本课题现存的一些问题和下一步需要 进一步完成的工作。 8 第二章驱动程序研究 第二章驱动程序研究 w i n d o w s 操作系统通过系统服务接口连接用户模式与内核模式两种工作模 式。本章将从操作系统的工作原理入手,讲述w i n d o w sx p 操作系统的内核驱动程 序,并简要介绍其中的p n p 驱动程序,进而详细探讨w d m 驱动程序的模型,层次 结构及加载等细节。本章的最后蒋:皇要阐述系统中需要了解的关键知识点过 滤驱动程序。通过对其机制的讲述,为其后的具体实现提供基础。 2 1f f in d o w sx p 操作系统概述 在w i n d o w sx p 操作系统中,软件要么执行在用户模式中,要么执行在内核模 式中。当用户模式程序需要读取设备数据时,它就调用w i n 3 2a p i 函数,如 r e a d f i l e 。w i n 3 2 子系统模块( 如k e r n e l 3 2 d l l ) 通过调用平台相关的系统服务接 口实现该a p i ,而平台相关的系统服务将调用内核模式支持例程。在r e a d f i l e 调 用中,调用首先到达系统d l l ( n t d l l d l l ) 中的一个入口点,n t r e a d f i l e 函数。然 后这个用户模式的n t r e a d f i l e 函数接着调用系统服务接口,最后由系统服务接口 调用内核模式中的服务例程,该例程同样名为n t r e a d f i l e 。“ 下图描述了操作系统中驱动程序开发相关的一些特征: 9 电子科技大学硕士学位论文 图2 - 1 操作系统驱动特征 函数 作 系统中还有许多与n t r e a d f i l e 相似的服务例程,它们同样运行在内核 模式中,为应用程序请求提供服务,并以某种方式与设备交互。它们首先 检查传递给它们的参数以保护系统安全或防止用户模式程序非法存取数 据,然后创建一个称为“i o 请求包( i r p ) ”的数据结构,并把这个数据结 构送到某个驱动程序的入口点。在刚才的r e a d f i l e 调用中,n t r e a d f i l e 将创建一个主功能代码为i r p m j r e a d 的i r p 。实际的处理细节可能会有不 同,但对于n t r e a d f i l e 例程,可能的结果是,用户模式调用者得到一个返 回值,表明该i r p 代表的操作还没有完成。用户模式程序也许会继续其它 工作然后等待操作完成,或者立即进入等待状态。不论哪种方式,设备驱 动程序对该i r p 的处理都与应用程序无关。 执行i r p 的设备驱动程序最后可能会访问硬件。对于p i o 方式的设备, 一个i r p m j r e a d 操作将导致直接读取设备的端口( 或者是设备实现的内存 寄存器) 。尽管运行在内核模式中的驱动程序可以直接与其硬件会话,但它 1 0 第二章驱动程序研究 们通常都使用硬件抽象层( h a l ) 访问硬件。读操作最后会调用 r e a d p o r t u c h a r 从某个i 0 口读取单字节数据。h a l 例程执行的操作是平 台相关的。在i n t e lx 8 6 计算机上,h a l 使用i n 指令访问设备端口,在a l p h a 计算机上,h a l 使用内存提取指令访问设备实现的内存寄存器。 驱动程序完成一个i 0 操作后,通过调用一个特殊的内核模式服务例 程来完成该i r p 。完成操作是处理i r p 的最后动作,它使等待的应用程序恢 复运行。 2 2w i n d o w s 驱动程序种类 w i n d o w s2 0 0 0 x p 系统可以使用多种驱动程序“”: 图2 - 2w i n d o w 设备驱动种类 在最高层,w i n d o w s 支持用户模式,内核模式两种驱动程序,从名字上来看, 用户模式驱动程序是运行在用户模式的系统级代码。内核模式驱动程序使用系统 级代码编写,且运行在内核模式下,因为内核模式允许直接访问硬件,这些驱动 程序被用来直接控制硬件。 向下移动一层,内核模式驱动程序可被进一步的分成两种,遗留模式的驱动 程序和w i n d o w s 驱动模式的驱动程序( w d 岫。遗留模式的驱动程序需要去侦测硬件 1 1 电子科技大学硕士学位论文 和与i 0 子系统连接。w i n d o w s 驱动模式的驱动程序支持即插即用,电源管理, 热拔插,自动配置。 再向下移动一层,遗留模式的驱动程序和w i n d o w s 驱动模式的驱动程序可被 进一步的分成三种:高层,中间层,低层。顾名思义,高层驱动程序依靠中间层 和低层驱动程序去完成工作,中间层驱动程序则依靠低层驱动程序去完成工作。 高层驱动程序包括文件系统驱动程序( f s d ) ,这些驱动程序为请求者提供了非 物理的抽象,并依次转换为特定的设备请求。在更低级的驱动程序已经提供基本 硬件服务的情况下,很明显需要编写一个高级驱动程序,把一个新的抽象提供给 请求者。 中间层驱动程序包括磁盘镜像驱动器,类驱动器( c l a s s ) ,迷你驱动器( m i n i ) , 过滤驱动器( f i l t e r ) 等。这些驱动器位于低层驱动器和高层驱动器之间。例如: 磁盘镜像驱动器接收到文件系统传来的写文件的请求,将它转换成为两个不同的 请求传给两个不同的低层驱动器。 低层驱动器包括硬件和总线的控制器。例如:s c s i 适配器是一个低层驱动 器,这些低层驱动器和h a l 于硬件结合紧密。在w d m 中低层驱动器包括物理驱动 器的概念,行为。这些物理驱动器与一个或者多个功能驱动器结合。 2 3w d m 驱动程序研究 w d m 驱动程序是一种p n p 驱动程序,它同时还遵循电源管理协议。w d m 功能驱 动程序还细分为类驱动程序( c l a s sd r i v e r ) 和迷你驱动程序( m i n i d r i v e r ) 。类驱 动程序和迷你驱动程序舍在一起才成为一个完整的功能驱动程序。“” 类驱动程序管理属于已定义类的设备,它了解如何处理操作系统使用的粕m 协议,以及如何管理整个设备类的基本特征。 迷你驱动程序向类驱动程序提供厂商专有的支持。 2 3 1w d m 驱动程序模型 在w d m 驱动程序模型中,每个硬件设备至少有两个驱动程序。其中一个驱动 程序我们称为功能( f u n c t i o n ) 驱动程序,它就是我们通常意义上认为的那个硬件 设备驱动程序。它了解使硬件工作的所有细节,负责初始化i 0 操作,有责任处 理i 0 操作完成时所带来的中断事件,有责任为用户提供一种设备适合的控制方 1 2 第二章驱动程序研究 式。 另一个驱动程序我们称为总线( b u s ) 驱动程序。它负责管理硬件与计算机的连 接。它不仅包括p c i 总线,还包括s c s i 卡、并行口、串行口、u s b 集线器( h u b ) , 等等。实际上,它可以是任何能插入多个设备的硬件设备。例如,p c i 总线驱动 程序检测插入到p c i 槽上的设各并确定设备的资源使用情况,它还能控制设备所 在p c i 槽的电流开关。 有些设备有两个以上的驱动程序。我们使用过滤器驱动程序( f i l t e rd r i v e r ) 来描述它们。我们把处于功能驱动程序之上的过滤器程序称为上层过滤器;处于 功能驱动程序之下的过滤器驱动程序( 仍处在总线驱动程序之上) 称为下层过滤 器。虽然这两种驱动程序本身用于不同的目的,但是创建这两种驱动程序的机制 完全相同。对于创建过滤器驱动程序而言,与创建其它任何w d m 驱动程序相同, 都有d r i v e r e n t r y 例程、a d d d e v i c e 例程以及一组派遣函数等。 作为可选择的驱动程序,过滤器驱动程序可以给设备附加特征值和修改设备 的行为。过滤器驱动程序能够服务于一个或多个设备,但在某个特定的设备堆栈 中,可有多个不同的过滤器驱动。某些过滤器驱动程序仅仅是在功能驱动程序执 行i o 操作时进行监视。多数情况是:硬件或软件厂商利用过滤器驱动程序修改 现有功能驱动程序的行为。 上层过滤器驱动程序的一个用途是帮助支持有一些附加功能的设备,这些设 备在大多数方面都像它们所属类的普通设备。上层过滤器驱动程序可以在功能驱 动程序之前看到i r p ,因此它们就可以为用户提供额外特征,而功能驱动程序根 本不知道。上层过滤器驱动程序的另外一个用途是修正功能驱动程序或硬件存在 的毛病或缺陷。 下层过滤器驱动程序不能干涉功能驱动程序直接执行的正常操作。因为功能 驱动程序可能通过 1 a l 调用直接访问硬件来实现大部分实质的请求。而下层过滤 器驱动程序仅能看到经过它传递的i r p 而看不到i a l 调用。在某些情况下,例如 当u s b 设备插入u s b 总线时,低层过滤器驱动程序可以修改功能驱动程序要执行 的总线操作流。 我们可以把一个完整的驱动程序看作是一个“容器”,它包含许多例程,当操 作系统遇到一个i r p 时,它就调用这个容器中的例程来执行该i r p 的各种操作。 对于有些例程,例如d r i v e r e n t r y 和a d d d e v i c e ,还有与几种i r p 对应的派遣函 数将出现在每一个这样的容器中。需要对i r p 排队的驱动程序一般都有一个 s t a r t i o 例程。执行d m a 传输的驱动程序应有一个a d a p t e r c o n t r 0 1 例程。大部分 1 3 电子科技大学硕士学位论文 能生成硬件中断的设备,其驱动程序都有一个中断服务例程( i s r ) 和一个推迟过程 调用( d p c ) 例程。驱动程序一般都有几个支持不同类型i r p 的派遣函数,其中三个 派遣函数是必须的。所以,w d m 驱动程序开发者的一个任务就是为这个容器选择 所需要的例程。 下图很好的表现了w d m 驱动程序的“容器”概念“: 基本驱动程序例程y o 控制例程派遣例程 d r i v e r e n t r y a d d d e v i c e d i s p a t c h p n p d i s p a t c h p o w e r d i s p a t c h w m i - d i s o a t c h r e a di i 一一一一一一1 ld i s o a t c h w r i t ei 一 必须的驱动程序例程 处理请求队列需包含s t a r t i o 设备产生中断需包含中断服务和d p c 例程 d m a 设备需包含a d a p t e r c o n t r o l 例程 可选的i r p 派遣例程 图2 - 3w d m 例程容器示意图 2 3 2 帅m 设备对象和驱动程序的层次结构 w d m 模型使用了如图2 4 的层次结构。图中左边是一个设备对象堆栈。设备 对象是系统为帮助软件管理硬件而创建的数据结构。一个物理硬件可以有多个这 样的数据结构。处于堆栈最底层的设备对象称为物理设备对象( p h y s i c a ld e v i c e o b j e c t ) ,或简称为p d 0 。在设备对象堆栈的中间某处有一个对象称为功能设备对 象( f u n c ti o n a ld e v i c eo b j e c t ) ,或简称f d 0 。在f d 0 的上面和下面还会有一些 1 4 震甾 口圄臻图”一 第二章驱动程序研究 过滤器设备对象( f i l t e rd e v i c eo b j e c t ) 。位于f d o 上面的过滤器设备对象称为 上层过滤器,位于f d o 下面( 但仍在p d o 之上) 的过滤器设备对象称为下层过滤器 圈2 4 删驱动程序层次结构“ 操作系统的p n p 管理器按照设备驱动程序的要求构造了设备对象堆栈。总线 驱动程序的一个任务就是枚举总线上的设备,并为每个设备创建一个p d o 。一旦 总线驱动程序检查到新硬件存在,p n p 管理器就创建一个p d o ,之后便开始描绘如 上图所示的结构。 创建完p d o 后,p n p 管理器参照注册表中的信息查找与这个p d o 相关的过滤器 和功能驱动程序,上图中部就是对它们的描述。系统安装程序负责添加这些注册 表项,而驱动程序包中控制硬件安装的i n f 文件负责添加其它表项。这些表项定 义了过滤器和功能驱动程序在堆栈中的次序。p n p 管理器先装入最底层的过滤器 驱动程序并调用其a d d d e v i c e 函数。该函数创建一个f i d o ,这样就在过滤器驱动 程序和f i d 0 和之间建立了水平连接。然后,a d d d e v i c e 把p d o 连接到f i d o 上, 这就是设备对象之间连线的由来。p n p 管理器继续向上执行,装入并调用每个低 层过滤器、功能驱动程序、每个高层过滤器,直到完成整个堆栈。 在上图的右侧,可以看到层次结构使i o 请求过程更加明了。每个影响到设 备的操作都使用i o 请求包。通常i r p 先被送到设备堆栈的最上层驱动程序,然 后逐渐过滤到下面的驱动程序。每一层驱动程序都可以决定如何处理i r p 。有时, 驱动程序不做任何事,仅仅是向下层传递该i r p 。有时,驱动程序直接处理完该 电子科技大学硕士学位论文 i r p ,不再向下传递。还有时,驱动程序既处理了i r p ,又把i r p 传递下去。这取 决于设备以及i r p 所携带的内容。 在单个硬件的驱动程序堆栈中,不同位置的驱动程序扮演了不同的角色。功 能驱动程序管理f d o 所代表的设备。总线驱动程序管理计算机与p d o 所代表设备 的连接。过滤器驱动程序用于监视和修改i r p 流。由于设备对象与驱动程序软件 之间关系紧密。 2 3 3 过滤驱动程序 过滤驱动程序是一种特殊类型的中级驱动程序o ”。过滤驱动程序在暗中执行 它们的工作。它们位于其它一些驱动程序的上面,并截取发往低级驱动程序的设 备对象的请求。低级驱动程序的用户完全不知道它们的请求被过滤驱动程序预处 理或截取了。过滤驱动程序的作用有: 1 ) 过滤驱动程序允许修改已有驱动程序在某些方面的行为,而不必重写整 个驱动程序: 2 ) 过滤驱动程序可以更加容易地隐藏低级驱动程序的限制; 3 ) 过滤驱动程序允许把压缩或加密等新特性添加到设备上,而不必修改基 本的设备驱动程序或应用程序; 4 ) 过滤驱动程序允许增加或删除驱动程序可能总是不执行的复杂功能( 如 性能监视) ; 过滤驱动程序和其它分层驱动程序的主要不同点在于他们建立的设备对象。 虽然分层驱动程序把他们自己唯一的名字暴露给设备对象,而过滤驱动程序的设 备对象根本没有名字。过滤驱动程序工作是把其中一个无名的设备对象连接到一 个由低级驱动程序建立的设备对象上。如下图所示: 1 6 第二章驱动程序研究 图2 - 5 过滤驱动程序原理图 在该图中,f l t d r i v e r 已经把一个过滤设备对象连接到f d o ,它是f d o d r i v e r 的设备对象之一。任何发送到f d o 的i r p 自动被重新传递到f l t d r i v e r 的d i s p a t c h 例程中。它的工作如下: 1 ) 过滤器驱动程序中a d d d e v i c e 例程建立一个不可见的设备对象,并把它添 加到一个属于比他低级的驱动程序的有名设备对象。 2 ) 低级驱动程序的一个客户打开一个与f d o 的连接。通常使用w i n 3 2 c r e a t e f i l e 方法获取一个句柄,或者一个内核模式客户可以使用 i o g e t d e v i c e o b j e c t p o i n t e r 。无论如何,i o 管理程序真正客户和过滤驱动的不 可见设备对象间的一个连接。 3 ) 当客户把一个i o 请求发送到h ) o 时,i o 管理程序把它发送到过滤驱动 程序的未命名的设备对象。i o 管理程序使用过滤器的驱动程序对象的 m a j o r f u n c t i o n 表选择一个合适的调度历程。 4 ) 过滤驱动程序中的读写调度例程在收到读写请求i r p 时,先查询读写权 限表,如果有相应的权限则调用i o c a l l d r i v e r 把i r p 下传到f d o ,如果没有权限 则返回访问被拒绝,并终止此次操作。 利用过滤驱动程序对要求的几种设备进行读写控制,每种设备的i o 处理例 程不同,需要开发多个过滤驱动程序,一个过滤驱动程序对应一种设备,处理该 设备具有特定数据结构的i r p 数据包。 1 7 电子科技大学硕士学位论文 w d m 提供了一个全新的设备命名方案,该方案是语言中立的、易于扩展的,并 且易于文档化。在该方案下,许多不同的硬件厂商都可以制作相似的设备,不同 的软件公司也可以为同一硬件编写应用程序。 这个全新的设备命名方案,主要是依靠一个设备接口( d e v i c ei n t e r f a c e ) 的概念,它基本上是软件如何访问硬件的一个说明。每个过滤驱动程序具有一个 g u i d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会议承办服务协议书8篇
- 国家事业单位招聘2025中国国土勘测规划院招聘应届毕业生拟聘人员笔试历年参考题库附带答案详解
- 奔驰车辆无偿赠与协议9篇
- 南京市2025江苏城乡建设职业学院招聘工作人员26人(第一批)笔试历年参考题库附带答案详解
- 临夏回族自治州2025年甘肃临夏某部招聘民兵教练员笔试历年参考题库附带答案详解
- 2025陕西陕建瑞高科技园有限公司招聘(25人)笔试参考题库附带答案详解
- 2025广东湛江经济技术开发区建设投资发展集团有限公司招聘1人笔试参考题库附带答案详解
- 2025年萍乡市工程咨询管理顾问有限责任公司招聘第一批外聘人员23人笔试参考题库附带答案详解
- 2025年烟台莱州市财金投资有限公司招聘(10人)笔试参考题库附带答案详解
- 2025年江苏昆山创业控股集团有限公司第一批人才招聘15人笔试参考题库附带答案详解
- 教育部首批中等职业学校专业教学标准
- 讲文明讲卫生
- GA 1809-2022城市供水系统反恐怖防范要求
- 近效期药品登记表
- 2022年全国工会财务知识大赛参考题库精简600题(含各题型)
- 特高压交流与特高压直流输电技术特点对比分析
- 康复医学科关于无效中止康复训练的制度与流程
- GB/T 13460-2016再生橡胶通用规范
- 《矩阵论》研究生教学课件
- 中国荨麻疹诊疗指南(2022版)
- 北京市统一医疗服务收费标准
评论
0/150
提交评论