已阅读5页,还剩66页未读, 继续免费阅读
(测试计量技术及仪器专业论文)基于pci总线的数据采集卡pnp驱动程序的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子科技大学学位论文 学科专业:畏涮耕技术吞 佚器 论文题目:基于p c i 总线的数据采集卡p r f l 驱;哺l 序的研究 硕士生:周文建指导捌币古天祥教授 摘要 在多线程多任务式操作系统平台下,为保证系统健壮和安全,系统资源由系统通过 虚拟化的方式进行统一的管理。设备驱动 呈序( 为动态或静态库) 需通过虚拟设备驱动程 序( v x d ) 访问系统内核服务,才能稠莸影充资源,从而控带归卜设的动作。 本文在基于f e i 总线的数据采集卡的基础e ,论述了开发设备驱动程序的般方法。 首先论述了即插即用的框架结构、以及p c i 总线和设备驱动程序的基本概念,然后从开发 设备驱动程序所需的背景知识出发较详细地阐述了驱动程序的杨凸部件v ) c d ,最后说明了 如何开发设备驱动程序的安装程序。 关键词:即插即用、p c i 总线、v x d 驱动程序、中断、信息文件 电子科技大学学位论文 u n d e rm u l t i t h r e a d e dm u l t i t a s k i n go s ,f o rs a f e g u a r d i n gs y s t e mh a l e n e s sa n d s e c u r i t y r e s o u r c eo fs y s t e mh a sb e e nm a n a g e db y0 s d e v i c ed r i v e r s ( m a y b ed y n a m i c l i bo rs t a t i cl i b ) a c c e s sr e s o u r c eo fs y s t e mw a l k i n gt h r o u g hv i r t u a ld e v i c e d r i v e r ( v ) ( d ) 。t h e ni tw o u l db ea b l et oc o n t r o ld e v i c eh o wt ow o r k b a s e do nt h ep c id a t aa c q u t i s i t i o nc a r d 。t h ep a p e rf u l l yd i s c u s s e dt h eg e n e r a l l y m e t h o do fd e v e l o p i n gd e v i c ed r i v e r f i r s to fa l l ,d i s c u s st h ef r a m e w o r ko fp l u ga n d p l a ya n dt h ec o n c e p to fp c ia n d d e v i c ed r i v e r s f r o mt h eb a c k g r o u n dk n o w l e d g eo f d e v e l o p i n gad e v i c e 7 sd r i v e r ,d e s c r i p et h ek e r n e le l e m e n to f 出i v e r i ti sa l s o c a l l e dv x d a tt h ee n d , t a l ka b o u th o wt ow r i t et h ei n f o r m a t i o nf i l eo fav ) 由。 k e yw o r d s :p l u ga n dp l a y 、p c ib u s 、v x d d e v i c e d r i v e r 、i n t e r r u p t 、i n f o r m a t i o nf i l e 3 电子科技大学学位论文 在目前流行的p c 机上。大多数的硬件设备如声卡、显卡和网卡等部是即插即用型的 配件。那么什么是即插即用呢? 它是管理计算机中所有硬件设备并使之正常工作的种技 术。从用户的观点来看,即插即用是直截了当的,只要在计算机中插入某个新设备。w i n d o w s 操作系统将发现j 茁个设备,并提示用户选择正确的驱动程序,这样用户就可以使用这个新 的设备了。当呻设各取出时。w i n d o w s 检觏8 至啦蕾竹 啉,并告诉疑两厢1 月喝l 设备已经不 存在了。个即插即用型设备要正常工作,必须要有设备驱动程序的支持,以下是设备驱 动程序工作的次序: l 、个标准总线驱动程序睑铡何时添加了个新设备 2 、该设备的设备标识符用于发现驱动程序 3 、驱动程序被装入,并告诉它添加了个新设备 4 、进步的消息告诉用户该设备啦用了那些资源 5 、然后驱动程序与设备通信,这可能要使用个标准驱动程序的服务来实现 要实现即插即用需要三个支持条件:符合即插即用标准的b i o s ( 基本输入输出系统) 、 计算机硬件及操作系统。下面,将作比较具体的描述。 1 1 即插即用实现的哥标 即插即用技术使得计算机用户可以很容易地添加新设备。它有效地解决了计算机中各 硬件设备之间可能发生的冲突并使得计算机可以枚举已经安装的设备。即插即用技术提 供了系列用户可以调用的应用程序编程接口( a p i ) 函数来增强已经存在的硬件驱动结 构,而不是代替云洧的鼹科韶动结构。它的基本出发点是在硬件设备的管理匕不需要用户 过多的干预,因而即插即用技术要实现的目标是: 使用户安装和配置新设备更容易 即插即用型的硬件设备可以标识其自身,并且可以声明其提供绐外部的服务和正常工 作所需要的资源。这些信自强粥l 操作系统可以决定并设置该设备可以正常工作的资源 配置,也能够装载合适的设备驱动程序,而不需要用户的的干预。安装个新设备就 象把新设备插入计算机插槽中,然后把所需的文件拷贝到w i n d o w s 中的驱动程序所在 目录样容易。v x d 驱动程序为“c :w i n d 侧s s y s t i b f i ”。w d m 驱动程序为“c :w i n d o w s s y s t 酬3 2 d r i v e r s ”。 电子科技大学学位论文 能根据设备变化进行动态配置 即插即用技术允许些计算机配件甚洛的裁掘拔比如谚缸髓总线的设备可以带电安装 或卸载。当个新设备插入虱剜。算毛兀总线插槽中的时候,操作系统将会识别出新设备以 及它所提供的服务和所需的资源并目会装载瞄要的驱动程序。其他正在运行的应用程 序将会得到有新设备插入的通知消息。因此它们可以充分利用新设备提供的新功能或停 止使用不可靠的设备。只有当新设备所需的资源不能得到满足的时候,用户才会得到该 提示。 有效的兼容已安装硬件设备 在即插即用技术中提供了一些特殊部件,这些部件克服了非即插即用设备不能向系统报 告其变化的缺陷。这些设备的信息保存在注册表中。那些不能用软件进行配置的设备在 资源分配时最先获得分配。只有当不研4 晕决的冲突发生的时候,才需要配置管理器的干 预,它通过权衡各方面的需求来决定分配方案,比如说根据设备信亩文件指导用户进行 设备的各种迸项配置。 使操作系统和硬件相互独立 即插即用技术定义了几个可以在任意操作系统下实现的基本部件。通过硬件指定的枚举 器、仲裁器和设备驱动程序就把总线、设备和资源6 基本部件中抽象出来了。这就保证 了这种即插即用技术不仅对其他环境而目对将来的总线和设备结构都是可扩展的。 降低了硬件的复杂性,增加了灵活性 即插即用技术f 包括了b 1 0 s 、操作系统和硬僦商在设计即插即用兼容设备时都应该的 指导性规范。该规范的个完整部分是i s a 即插即用设计规范,它为i s a 总线设备定义 了叶魈的硬件和固件( 固化在硬件设备中的软件) 设计规范。相似的机制也被p c i 、 p c 眦i 朋钨c s i 总线结构所支持。即插即用技术定义了所有硬件设备都有的共同部分,即 设备节点( d e v _ n o d e ) 。如果硬件供应商希望f 螂 搦拱的设备能够实现即插即用,则需 要保证它们的硬件设备、设备驱动程序能够提供足够的信息来支持该硬件的设备节点。 1 2 即插即用包含的系统部件 即插即用技术定义了个具有n 属性的对象,也称为设备节点。设备节点的属性之 一( 即后面要提到的设备标识符) 标识了设备所提供的资源( 总线) 。描述一台计算机中 所有的设备节点的集合称为设备节点树。即插即用技术定义了n 价软件部件,现在已经 添加到w i n d o w s 操作系统中,即;配置管理器,设备枚举器和资源仲裁器。设备牧举器创 建设备节点树,也可能参与其所在总线上的设备的配置。设备桉鞫丑程发生在计算机的每 一次启动i 据当中。w i n d o w s 按作系统目前历实现的设名彭啸锡激两个阶段:b i o s 加 电子科技大学学位论文 电时自动测试阶段( p 0 s t ) 和保护模式阶段。在完成设备的枚举后,设备节点树包含了设 备相关的可用系统资源、所需的设备驱动程序和所需资源的信息。配置管理器利用资源 仲裁器配置个可工作的资源分配方案,这个方案可以满足当前已枚举的所有设备的需 求。w i n d o w s9 x 通过广播系统消息到应用程序和设备驱动程宁来提供动态的系统事件通 知。以便于设备驱动程序得到分配给它对应的硬件设备的资源配置方案。当个事件,例 如个设备插入或拔出的事件发生时,应用程序和设备驱动程序都将得到通知。它们就可 以采取相应的措施或者在些特殊情况下酉决该配置生效。即插即用技术也使用注册表和 设备信息文件( 扩展名为i n f ) ,也对刮门的用法进行了扩展。注册表中存储着台计算 机中所有曾经安装过的设备的信息包括那些非即插即用的设备( 这些设备是操作系统安 装时所检测到的) 、由枚举器所定位的即插即用型设备以及指定设备的状态信宦、绑定 到硬件设备的设备驱动程序。以及最新的资源配置方案以加快资源的分配。设备信息文件 中包含着已知设备的部分信息。w i n d o w s 操作系统提供了些典型的设备信息文件,如: 小型计算机系统接口的信息文件s c s i i n f 和调制解凋器的信g 文1 m o d e m i n f ,而其他 非典型设备是由设备甫螳捕艉供的。当检测或枚举到个新设备时,都将在所有已知的i n f 文件中搜索整个匹配的设备标识符。当找到个匹配的设备昧识符,所需要的文件将拷 贝到特定的位置,必要的数据将添加到个新建的注册表 口处。如果没有找到,贝崾容j 之 用户提供相关这些信息。 1 。3 即插即用系统徽同的糖互作用 当安装w i n d o w s 操作系统时,操作系统的硬件捡澳4 模块将在凇d 盯i n f 信息文件( 参 考附录一1 ) 的基础匕装载。当检测到个非即插即用的设备时,它的相关信自将u 台舌的 设备信息文件中提取,并目存储在注册表中的i v d m e n u m r o o t 分支下的个新建的节点 中。在操作系统初始化安装后的第一次启动时( 以及随后的每一次启动) ,系统部糌寝载 设备枚举器,这样那些不能检测到的设备可以通过枚举过裎来i 授赡 因而可以完整地列出 所有已安装的硬件设各。通过彬瞎鲜导到的设备将出珊在注册表中的腿帆e n l 】m 册懒甜 ( e n u r a e r a t o r 主耍有p c i 、u s b 、s c s i 、i s a p n p 、b i o s 等) 分支下。每一次计算机启动时, 配置管理器都装载设备枚举器来枚举系统中的设备。枚举器在设备节点树中为每个枚举 到的设备创建个设备节点并在该设备节点中存储该设备的相关信息。按照总线来命名的 机制保证了设备节点树根键下的设备标识徽该设备节点在注册表中的实际分支。在注 册表中存储着绑定到每个6 罨件设备的驱动程序的信息,驱动程序就是按这种绑定关系来 装载的,井崩茧个矧僦对应的设备节点以供其使用。我们举个即插即用型的i s a 总线网卡为例,首先配置管理器装载i s a 总线驱动程序来枚举i s a 总线上的设备。如果枚 举到了该网卡,则把其有关信氨i 字1 1 i 苦= 臼i - 姗表中,然后在设备节点树中的合适地方增加一 电子科技大学学位论文 个新分支来存储网卡相关信息,最后按照网卡和其设备驱动程序的绑定关系装载其设备驱 动程序。下面的框图展示了即插即用各部件之间是如何相互配合工作的: 1 4 即插目p 脓 w i n d o w s 启动过程中的体现 在实傍戬搪动过程中,硬件设备仅仅使用静态配置,操作系统汝酎副锄态的资源 分配和仲裁。当个新设备插入到计算机中的时候在配置管理器能成功地安装该设备之 前,操作系统不会为该设备提供服务。个可能的例外是即插即用b i o s 可能会激活个 在操作系统启动时必须使用的设备。 下面是w i n d o w s9 x 操作系统启动过程所经历的四个阶段: b i 9 阶段( p h a s e1 ) 实模式下的操作系统控制阶段( p h a s e2 ) w i n d o w s9 x 实横薄粼( p h a s e3 ) 保护模式下的操作系统控制阶段( p h a s e4 ) 电子科技大学学位论文 1 、b 1 0 s 控制阶段( p h a s e1 ) 有两种类型的b i o s ;非即插即用的b i o s 和符合即插即用标准的b i o s 。我们主要讨 论即插即用型b i o s 的计算机。即插即用型b i o s 会访问硬件设备中非易失性r 枷来决定应 该激活哪些即插即用硬件卡、它们的r o m s 选项应该映射到哪儿、分配给该卡的i o 端口、 d g a 通道和其他资源。然后,在加电自动狈归式( p o s t ) 之前,b i o s 将按照上面的基础匕规 划好即插即用卡。那些在b i o s 中没有存储配置的所有硬件卡将完全禁止,这蒯j 除了出 珊冲突的可能。即插即用b i o s 同时也要配置母板匕的所有设备。由于整个系统的需要, 些设备可能已经被禁止或者由配置管理器分配了不同于以前的i 0 端口、i n 或其他资 源。 2 、实模式下的操作系统控糊喻段( p h a s e2 ) 在这个启动阶段,计算机不会自动枚举设备。需要装载的驱动程序必须在c o n f i g s y s 或a i 哪x e cb a t 文件中明确说明。下面的列表给出了实模式眦的过程: 估计整个硬件配置情况 处理c 0 n f i g s y s 文件 处理a i 聃e ) ( e c b a t 文件 开始下一阶段的w i n d o w s 实模式装载 3 、w i n d o w s 实馍式装载器( p h a s e3 ) 在保护模式的配置管理器初始化之前的最后步是装载静态v ) 【d s 。出于向后兼容的 原因,实楱捌油磷器会首冼谢 载在s y s t e m i n i 文件中指定的设备。这是配罾增铟臻g 开始 工作的第个阶段,在这个阶段配置管理器将自动对设备进行枚举,也可以访问注册表了 但仍然不会自动分配资源。以实模式配置管理器驱动程序6 诮蝴9 到的硬件总线类型为基 础,系统会装载合适的枚举型v x d 。例如:如果在系统中存在i s a 总线,i s a 型枚举驱动 程序将在这个阶防睇戤。如果计算机中装有即插即用的b i o s b i o s 枚举器将装载。在任 何| 青况下,根枚举器蕾陷吝个阶e 瞒戡。 4 、保护模式下的操作系统控制阶段( p h a s e4 ) 旦初始化了v m 3 2 v x d ,保护模式下的配置管理器将全面初始化。配置管理器将从 实模式下的装载器中导入设备标识符( d e v i c ei d ) 的相关胤息。在这个阶段,驱动程序 将会被装载并初始化,这和操作系统已经启动后设备的动态枚举及设备驱动程序的装载所 采取的方式是致的。枚举器刨建设备节点。配置管理器调用合适的设备装载器,启动过 程继续向下进行。在计算机可以开始使用的时候,该计算机中的硬件列表就京下面所示: 电子科技大学学位论文 1 5 配置管理器 配置管理皤是即插即用拱沭中的核心曜目件。同其他部件| 协作,配置管理器制定出可以 使计算机中所有设备都可以正常工作的资源配置方案。因此每个设备都可以使用分配 给它的i o 端1 :3 t t ! l = 1 1 1 :、i r o 中断号和其他资源,而不会同其他的设备发生冲突。配置管理 器也帮助监视计算机中现有设备数目和类型的变化,并且在设备发生变化时,管理设备的 重配置。配置管理器协同设备枚举器、资源仲裁器、设备装载器和设备驱动程序来怠j j 建和 维护资源配置。同时,它也提供了一些服务和消息供这些部件使用。下面将具体说明这些 服务和消息,并解释它们是怎样被使用的。 1 5 1 硬件附、设备节点和设备标识符 硬件树是驻留于内存中的个数据结构,由配置管理器所构造和维护。硬件树眺附状 结构方式记录了当前计算机中所有硬件设备的配置信息,配置管理器使用它来跟踪分配给 每个堤各的资源,比如i r q s 、i o 端口,甚至象s c s i 标识符等非共享的资源。硬件树描 述了已存在的设备和可用系统资源、设备资源需求、资源之间的相互依赖和当前资源分配 方案。在硬件树中,每个入口点就是个设备节点。每一个设备节点都包含个唯一的 电子科技大学学位论文 设备标识符和所需资源的列表。设备标识符是唯一的描述个 殳备的a s c i i 字符串。该字 符串典型的标识了该设备,同时,由于它也作为注册表中的个键,因此在个计算朝系 统中它应该是唯一的,所以可以可靠的获取地该设备的信息。资源需求列表标识了设备成 功操作所需的资源类型和对这些资源的所有限制。i r q s 、i o 端口、d m a 通道和内存范围都 是资源类型的实际分类。对资源的限制通常是资源之间的相互髑陨。虽然设备驱动程序或 其他部件不能直接访问硬件树或设备节点,但可以从任何设备节点获取个句柄,然后获 取或设置该设备节点的各种设置。配置管理器提供了如下些服务来执行在个设备节点 上的任务( 配置管理器提供的所有完整的服务可以参考附录- 2 ) 。 服务描述 岍i 回6m a t ed e v d e 自建个新的设备节点 陌i 唧i s 曲l ed e v d e使酬槲盼忡殳备节点无效 陋i q 船e n a b l e _ d e v d e使硬件树中的叶喵 各节点有效 0 0 陋i 硎e t - 0 l i l d 获取指定设备节点的第个子节点 n f i g m i j e t _ d e p t h获取稠删中某诅? 笛节点的深度( 即有多! i 圩净l 节点) z x n f i c a ( gg e td e v i c e _ i o 蒺取个设备节点的设备标识符 3 ) n f i g m g _ g e t _ d e v i c e _ i ds i z e 获取叫啵备节点的设备标谚w 守的存女与叫、 陌i g 惦曲t _ d e v n 0 d e - s t a t u s获取个黼点自够h 漶 n f i g 船曲恤n t获取个设备节点的父节点的句柄 。陌i g m e t s i b l i n g获取卟设备节点的姊妹节点 ;( 岍i g i g _ l o c a t e _ d e v n o d e获取列应某设备驱动程j 芋起的设备节点的指针 o i 岍i g m g m o v e d e v n o d e 用有效的非根枚举设备节点代替个根枚举设备节点 。陋i g 岫e r yr e m v 哂u b l h e检查个设备节点和它的子孙节点是否可以删除 c 。| 岍i g 惦r e 刚蝴t e - d e v n o d e 使指定设备节点的枚举鼹接收o 啊g 尉i 唧l m 消息 断i g 惦r e 哪v e s i 】b t r e e删祭h 赂节点 陀的子节点 c 0 岍i g 惦r e 帕v 创m a r k e d 研i l d r 喇除已标志为d n _ m s _ m r k 的设各节点的所有子节点 c 。| 肾i g 蝣r e s e t _ 衄i l 出e nm 畦s复位设备节点的子节点的蹦h sl i 雕标志 陌砌_ z _ s e t u pd e v n 0 d e硪删擒饼配置- _ 1 撇设备节点蹦翻凇举器- f 剃育息 设备节点在硬件树中是分层次布局的。这意味着个黼点要么处于i 更件树中的根 部,要么是其父设备节点的子设备节点。个设备节点可以几个子设备节点。个设备节 点的父节点的其他子节点称为同属。硬件树是计算机的每次启动时所创建的。而且,它 是完全动态的,甚至在计算机运行时如果有个设备添加到系统或从系统中卸载也会发生 变化。 1 5 2 逻辑配置 逻辑配置是对个设备能够正常工作所需资源的总体描述。任何给定的设备都可以有 几个可能的逻辑配置。配置管理器根据个设备的逻辑配置来决定在所有的设备中应该怎 样分配资源。配置管理器提t i l 彳艮多服务以便于设备驱动程序、设备枚举器和其他部件可以 用来检查和创建逻辑配置。下面是有羚搠置方面的服务: 电子科技大学学位论文 服务 摧述 0 0 陋i 例g - a d d 且p t 山g0 0 n f 创建个空的逻辑配置( 该配置无资源描述子) 3 3 n f l 6 m _ f r e e _ l o g _ c o n f 释放个逻辑配置以及和它相关联的资源描述子 0 0 陋i q 船g e t a l l o ci n g f 以表洛的方式获取已分配的资源 3 3 h y i ( 猢g _ g e tf i r s t _ l o g _ c o n f 获取个设备节点中指定类型的第个逻辑配置的句柄 c o n f i g m _ g e tn e x t _ l o gc o n f 获取给定资源配置的下个逻辑配置的句柄 岍i g 崛j s a p mt 0q i转换i s a p h y 需求并增加它们至l 卜叶q 锭的设备节点 x ) n f i c 4 i g _ r e a d _ r e g i s t r y _ l o g _ c o n f s 从注册表中积玮( j 2 群霏i 己置 设备驱动程序通常使用c o n f i g m ;_ a d d _ h m p t y _ l o g _ c o n f 服务来创建空逻辑配置,在 其中可以填充资源需求。设备驱动程序和相关部件使用c o n f i c 黼一g e t f i r s t _ l o g _ c o n f 和c o n f i g m g g e t 一x u j 0 9 - c o n f 服务来,睑测与叶设备节点相关联的所有j 翌辑配置。一 个设备驱动程序使辟jc o n f i c 黼一g e t a l l o c _ l o g _ c o n f 服务来获取已经分配给设备的资源。 下面是分配给p c i 高速数据采集卡的系统资源: 1 5 1 3 资源描述子 资源描述子描述了们翌辑配置中的资源的具体l 青况。资源描述子可以分为内存、i o 端口、d m a 通道和中断清求( i 鼢) 。如果需要,可以创建其他的资源描述予标识一个设 备使用的其他类型的资源。配置管理器提供很多服务以便于设备驱动程序和其他部件可以 用来检查和修改资源描述子。下面是有关资源描述子方面的服务: 电子科技大学学位论文 服务描述 d 际i g m g _ a d d _ r e s _ _ d e s 增加个资测献控:于蛰卜们戥鼯b 置 3 3 n f i c a g f r e e r e s d e s 销毁个赍源描述子 0 0 陋i 例晒e t - x t i e s _ d e s赫们戮酾氇中下仰醐鼎6 述子的铺 3 3 n f i ( 狮_ g e t _ r e s _ d a s _ d a t a从指定资沥姥谜子拷贝嚣擗i 卜喇蝴帅区中 3 n f i g 崛_ g e t _ r e s _ d e sd a t as i z e 攒弱鳅尉献好的大小,不包括资源脚盎子头 3 0 n f i c a i g _ m o d i f y _ r e s _ d a s修改卟资源描抒 1 5 4 设各装裁器方面的服务和消息 设备装载器装载和管理给定的个黼点的驱动程榔枚举器。设备装裁酾恿常用 在那些由驱动程序的不同层管理的 殳备。设备装载器咖凋不同层的工作井执行适用于所有 设备驱动程序的通用的配置任务。配置管理器也提供了些服务以便于设备装裁器可以执 行它的任务: 服务描述 0 0 n f i 硎哪e t _ d d b 8 从个g 洛节点动态境戴的v x d s 中获取_ 设备描i 击块 3 ) n f i ( m :一g e t p r i w t ed w o r d 获i & 个设备节点在另个设备节点中的私有值 叫岍i g i d 日d 肼v 固执个设备节点中动态装载_ 可装黼v x d s 。0 陌i 盘旺r e g i s t e rd 刊棚d e r 指定个静态v 】c d 将淹咖蕊为个设备日躐器 z x ) n f i g 淞s e t _ p r i v a t e _ i y # o r d 设置个设备节点在另个设备节点中的私有值 设备装载器使用c o n f i c 舶g _ r e g i s t e r d e v l o a d e r 服务函数来注册它自身。这样就把一 个设备节点与设备装载器联系在起了。设备装载器也可以用c 0 n f i g m1 0 a dd l v 】( d 服务 来装载阎各节点或其任何子设备节点的枚举器和驱动程序。驱动程序开发人员也可以调用 c o n f i c a l g g e t d d b s 服务获取任何动态裴载的与个设备节点相关联的虚拟设备的设备描 述块。 1 5 5 枚举器方面的服务和消息 枚举器定位、标识即插即用设备并获取这些设备的信息以用来构造硬件树。配置管理 器提供了朋务以便于枚举器注册其自身,也提拱了蚀本;目阿以用来执行带瞎i 懒的各种服 务。特唰的,j ! i 圆蜘以使用c o n f i c a g _ r e g i s t e r _ e n u m e r a t o r 耶务函数注册叶澎擘敞b 理函数。配置管理器在需要枚举器执行叶堆努的任何时候都可以友送个| ! i 洋消息给这 个处理函数。 在枚举过程会查找用户p c 机上的所有设备。对于计算机中安装的各种设备,由于其 总线结构的不同,其处理过程是不同的。 i 、固定的设备和可配置的设备 对于计算机e 的设备可以分为固定的和可配置的设备。我耵 都知道,p c 主板e 的大 多数设备位于固定的位置。例如,在大多数的p c 机上,键盘控制器可以在i 0 端口o x 6 0 电子科技大学学位论文 和0 x 6 4 访问,使用的中断线是i 购l 。这个力娃汉耕主板e 的键盘控制器可以工作的很 好,但是对于串行端口和老的i s a 总线,对用户来说就变 ! 寻i 艮复杂了。如果个老的i s a 总线设备使用固定的地址和中断,和容易与另个 殳备冲突。如果使用在设备e 提供跳线 和开关的办法,但这样增加了用户使用的难度。其解决方案是螂亥漫备可以使用软件配置。 当一个设备加电时,它的总线驱动程序检测至护芭。总线驱动j 图亨蝴槽口或端口号查询设 备,些配置信息或设备标识符告诉总线驱动程序该卡使用什么样的资源。然后,总线驱 动程序或p n p 管理器合适地分配资源并涠过发送命令或者写寄存器把这个信息告诉设 备。然后,设备配置它自己以匹配指定的地址。最后。设备开始正常运行。 2 、当w i n d o w s 启动时,它并不知道那些设备连接到计算机t 。它可以发现自己的些基 本信息,如有多少内存,但对于其他的设备信息,就需要借助驱动程序的帮助了。w i n d o w s 使用驱动;国芋j 蚶眵可用的硬件。枚拳副= 旨查找并列出任何可用的设备,然后使用仲裁目晕调 整所有的资源要求。对每个设备查找合适的驱动程序,然后告诉这些驱动程序使用那些资 源,并运行这些驱彩陧序。枚举是从最低层开始的。p c 中的根设备查找主板e 的基本芯 片。它查找任何简单的设备,如内置的串行口和键盘。它还查找p c i 适配器( 控制p c i 总 线的电路) 。然后,p c i 总线驱动程序枚举和配置它发现的所有硬件。首先。它发现i s a 总线的桥。它的驱动程序然后发现个p n pi s a 声卡,并装入该声卡的驱动程序。p c i 总 线驱动程j 芋还发现个u s b 总线控制器。u s b 驱动程序枚举u s b 总线。发现连接的个键 盘和打印机。这些设备i 良配置,并装入合适的驱动程序。 下面是有关设备枚举黔疗面的服务: 下面是有关设备枚举器方面的消息: 消息描述 0 0 盱i g 脚凇棍 揩紊叫壤勘剩孚j 躲陀的= 酎好节氘当锕曼甜蠡 勰出神鼢戥莹谚 消息 2 3 n f i g - f i l t e r指示阳睛耀序处理个断赂或改变懈的配置 0 0 陋i gr b l o v e 哪羽睛哺l 序和彭蜘 白勺设备节点正5 l 硬抖树中删除 。0 陌i gs t 盯 捌嘲睛隳l 序酗设备节点分配了赍i 日瓣置;骝辫明呵蚺嘲踌 2 喃氇 并开始使用诩s e 置 0 。岍i gs 1 凹 指示驱动程序停止使用当前分配的资涸i b 置 c 0 陌i g :i e s t从驱动程序i 青求使分配的配置无效或删除给定设备节点的权限t 如果驱端 琦环能够停止晓用当籼或没懈扒系统中删除学2 i 殳备叼涵捞授予 浅赚 电子科技大学学位论文 如果枚举处理函数没有处理某些消息则必须返回c r _ d e f a u l t 。枚举器负责创建它 所定位的设备的设备标识符。每个标识符觏湖是唯一的,并且在系统的每一次启动中 都必须是保持不变的。该标彭玮蝴构造以用来在注册表中标谚i - 卟碓一的入口并且设备 标识符必须以枚举器的名称打头并紧跟个反斜杠。例如,所有的i s a 即插即用枚举器所 枚举到的设备的设备标识符都以“i s p n p ”打头。 1 5 6 设备驱动罔鞠朔啪明酚谦辅息 设备驱动程片啦匍i 并管理硬件设备。在w i n d o w s 操作系统中提供了些标准的驱动 程序,用户编写的驱动程序可以使用这些标准驱动程序提供的服务。标准的总线驱动程序 在计算胡加电时检测新设备,在添加或删除设备后也要检测新设备。每个总线驱动程序从 它t 滞的每叶惯皤中取出呻憾多个设备枥嘏符,这些标识符用于检查所有可用的设备 信息文件以发现它的设备驱动程序。如果不能发现合适的驱动程序,就提示用户插入驱动 程序盘。设备驱动程序负责标识给定设备的具体的资源需求。并协同由配置管理器分配给 它的资源_ 起正常工作。配置管理器提供了些服务和消息以便于设备驱动程序执行其任 务。特别的,设备驱动程序可以使用c ( 1 肾i c a i 6 _ r e g i s t e r _ d e v i c e _ d r i v e r 服务函数注册配 置处理函数。一旦该处理函数已注册,无论配置管理器任何时候要执行个配置任务,它 都会发i 羞配置消息给处理函数。 下面是设备驱动程序方面的任务: 鼹务描述 n f i g 惦c 日1 1 b a c l 乙d e v i c e d r i v e r调用0 0 n f i 盛e g i s t e r _ d e v i c e _ 脏i v e r 函数在訇 个设备节点上回调设备驱动程序 陋i g 惦j e t _ d e v i c e _ 腑i v e r _ p r i v a t e _ l 瑚o r d获取叶设备节点中的瑟酗e 动程序的私_ 冉值 。陌i g 崛j i e g i s t e r _ d e v i c e 且i v e r为个设备节点注明配置处理函数 c 。m g 懈e t - 腑v i c e - 伢i v e r 且i t 屯嗍o r d设置个设备节点中的设名顿酬腥序的私有值 消息 消息描述 。0 陋i g 踟脓m擗静一1 颂勘程制女举它咐割麴叶i 点,当个投r 各插入或取出时将发 送崩能 o o n f l 6f i l t i m 揖紊叫嘲靖6 程敏嘲卜卟新设备】茹魍卜叶设备的配置 c 0 盯i g 阳彤v e 通知驱瑚蛰缔盹泞构设备节点正从 爨附捌中删除 。断i gs t l r面羽欧瞩序酗设备节点分配了资i 日配置;驱朝锕以飙资源 配置并开始使用目疆b 置 陌i gs 1 d p 指示驱动程穿停i 匕使用当前铀谣啪资溺氇 c o n f i gn 蕊t 6 l 驱动程序 青求使分配的配置无效或删除给定设备节点的投限;如果驱 动曝序不能眵降止使用当前_ 酉己置或次有准备m 系统中删除、该没备,则不 应该漫确姗 对于它没有处理的配置消息设备驱动程序必须返回c r _ _ d e f a u l t 来指明。 电子科技大学学位论文 下面是p c i 高速数据采集卡驱动程序的详细资料: 1 5 7 资源仲裁器方面的服务和消息 资源仲裁器解决硬件设备之间可能出现的资源需求冲突。资源仲裁器回顾所有设备 的资源请求列表并找出最好的资源分配方案来满足这些设备。配置管理器也提供了些服 务函数和消息以支持资源仲裁器的工作。特别的,仲裁器睫用服务函数 o o n f i g 崦- r e g i s t e r - a r b i t r a t o r 在配置管理器中注册个仲裁处理函数。旦仲裁处理 函数已注册,它就会接收到配置管理器茂送的仲裁消息,无论配置管理器任何时候在设备 资源需求时都可以解决资源冲突。 下面是资源仲蜘的服务: 服务 描述 c o n f i ( 狐_ d e r e g i s t e r _ a r b i t r a t o r删除个资源仲裁器 0 0 陋i 曲bq l 口ym i t r a t o rf r e e 阢t a获恻箭刨槲黼甜撼隋使用、的信息 。0 陌i q i i e r y r b i t r a t 咄e e - s i z e获敷在调用函数c o n f i g 惦_ q u e r y _ a r b i t r a t o rf r e ed a t a 时返回的没有使用的资源信息的太小 :i ) n f i c a 惦_ r e g i s t e r _ a r b i t r a t o r 庄册个资源仲裁器 下面是资源仲裁方面的消息: 消息描述 a e af o 觚a l l o c 指剥憔嘲唾新目f 试,如果成功,岈百黻的资源 腽a m r yf r 旺请求们獬置中没有使用的自由资源有关信息 咫阳e 豁e 撑j 历括剩椭嘲班试图矧啾失;翰捧瞰已分配蛉蝴资源 r b 碰黼 当关联峻各节点的仲裁处理函数将要删搿m 欺羞该消息 腽闽 1 1 0 c 指示资源仲裁器蜜翮酿骀定的资源分配 + s e t 摇鹂餐疆利塌溺对实际分配的资源作黜式 懈3 :r e 辄舢1 0 c船剥啊黼融临噬淀韵资源分配 对于曲殳有处理的消息仲裁处理函数必须返回僳d e f a i t 来表示。 电子科技大学学位论文 1 5 8 范围列表 范围列表是i o 端口和内存地址范围( 以双字节格式表示) 的个已捕莉嚎,在列 表中没有两个范围会相互重叠。资源仲裁器使用范围歹4 表服务来发现是否卟饴定的i o 或内存范围和其他范围冲突来管理i o 端口和内存范围。这些服务检测那些刨建的范围列 表,如果该范围可能包含重叠,那么要么放弃,要么合并那些可能重叠的范围。每个范 围必须指定们奎续的地址范围,但是范围列表本身可以包含多个范围,它们没有必要是 连续的。如下图所示为声卡i o 端口的输入输出范围,其中输入输出范围b 8 0 0 b 8 0 f 和0 3 8 8 _ _ 0 3 8 b 以及0 3 0 0 - 0 3 0 1 可以不是连续的,但是它们不能有重叠部分。 下面是范围列表方面的服务: 服务 港述 d 。陌i g 惦 d d 鼢n g e增加个内存范围到范围列表 0 0 陋i 温i gc r e a t ei i a n 阴1 i s t仓膳晰内存范围列表 。陌i g 崛d e l e t er a n g e 从个内存范围歹峥锄喙女个内存范围 。0 陋i 功_ 中r a n g el i s t复f | j ! 卜个范围歹燧懒i j 睽端 c 0 n f i g 猕d i 堆弛n g e _ l i s t拷贝个范围列表 c d 陌砌蛙_ f i r s tl i a n g e 获取在个范围列表中的第个范围元素 。陋i q 崛f r e ei l a n g ei 工s t释放指定的范围翻陵几及分配给它的内存 :o n f i ( 狮_ i n t e r s e c t _ r a n g e _ l i s t m 两个给定的范围列表的交集作为个范围歹o 表 3 0 m g 崛j n v e r ti i 8 n g e1 i s t仓峰撒个范围列表的反集:在新列表中后帚百已声明的内 存范围将在旧范围列表中指定为未用的 。i 岍i g 粥x tr a n 睇在卟范围歹4 表中获取下个范围元素 c a l 岷i g 崛t e s tr a n v a i l a b l e 检查卟范围列表中的个内存范围以保证没有冲突存在 1 5 9 注册表方面的服务 设备驱动程序和其他部件可以在注册表中存储设备节点的些信息,同时也可以通过 配置管理器获取存贮在注册表中的设备节点的信息,下面是配置管理器提供的处理注册表 的服务: 鼹务服务描述 。岍i g e td e v d ek e y 从个设备节点获取注册键字符串 。陋i 例e l d e v d el c e ys i z e从个设备节点获暾注册键的大,j 、 0 0 陋i g 蝣r e 8 dr e g i s t wv a 】u e 从注册表i 卖取个值 0 0 陋i 例g - ! l ? r i t 出i s t r y v a l u e 在注册表中设置个值 1 6 屯子科技大学学位论文 1 5 1 0 硬件配置方面的服务 硬件配置是计算机系统中定义现存硬件的一系列信息。硬件配置典型地用在接驳式计 算机中,在这些计算机中设备的数目和类型都可能在每种接驳状态下是不同的。典型的 接驳式计算机系统有每一个接驳状态下的硬件配置。相对应。每个非接驳状态也有一个 硬件配置。当系统启动时,无论是接驳还是不接驳,每个枚举器都重新枚举它的硬件, 并决定哪些是可用的,并且刨建或剩除设备节点来反映其可用性。枚举器使用硬件配置服 务来创建和维护计算机中的硬件配置。这些服务有: 服务描述 :o n f i g i 惦一f a i lc h a n g e _ c o n f i g取消为改变当前硬件配置昕做的准备 0 0 陌i g m z e t 唧胁ff l a g s从个设备节点硬件配置的结合中获取指定配置的配置际志 n f i g 崛- s e t 州p r o f设置当前硬件配置 3 ) n f i g m g _ s e t _ 哪_ f r o ff l a g s从个设备节点巧脚置的结合中设置指定配置的配置标志 硬件配置标志对每个设备节点都适用,并且标识该设备节点是否按照个给定的配 置来刨建。用户可以使用c 0 盯i g m g _ _ g e t - h 忆p r o f l a g s 和0 0 n f i g m 旺- s e t 州p r o f l a g s 服务得到或设置i 塞刑示志。 1 & 1 1 其他方面的服务 设备驱动程序和其他部件使用其他多方面的服务来执行各种支持任务或调试任务。 这些服务包括 服务描述 。0 丽g 隔国1 1 - a t 细y _ t i m e 在直用吲鄙黜昀彝野雅弼啦睡e 函数 。0 f 岍i g 惦e tc 跹0 l e c k s m为指定绣时计算勰c 值 。0 陋i 螂e t _ v e r s i o n获取配置管理器的扳本号 。0 陋i g m g l0 c k 阳i 晤曲蹿朔魏蹦渡蝴非嘴息 n f i o i gp r o c e s 宣e v e n t s - w 强幛咐处理立即搠亍 3 2 f f i c , m g _ s e t p r i v a t e _ p r o b l e m德强管匿2 斓指定的 殳备节点和日i 用数据讽用私有a p i 函数 。n f i g 崛n 1 0 c k在调用0 0 陋i g 粥l0 c k 函数后重新值日醢肆朔鞠g 有效 c i v i c s _ y i e l d等待指定的毫秒时间 1 6 即插即用型设备驱动程序 一个理想的即插即用设备驱动程i 芋应该具有下面的能力: 从配置管理器中获取配置信息 是可动态装载的 是可动态再配置的 在选择所需驱动程序时只需要用户最少的干预 可以刑斯设备杓插入或卸教等系统消息作出响应 可能需要理解设备的动态信息,也就是说设备设置可能随着不同用户的登录而不同 电子科技大学学位论文 大多数即插即用设备驱动程序工作时都会提供个回调函数入口,以便系统调用并分 配资源。许多即插即用技术自刚牛,比如枚举器和资源仲裁器并不需要设笤孵;孵的开发 人员共汰但是,蹦犁鲔附的每- 部分有憾本的了解,可以使剃u 埙对刮f 是如 何协同工作有个完整的认识这对开发 、员来说是很重要的。不同结构体系的设备驱动 程序同即插即用技术之间的相互作用是不同的。许多v x d s 是直接同配置管理器打交道的, 但那些分层驱动模式的驱动程序可能矾其他层中获得配置信息。例如,w i n d o w s9 x 的网 络驱动程序是以n d i s 驱动漠式为基础的,在这个基础上扩展t a p 插即用的功能。网络包 装层同w i n d o w s9 x 配置管理器打交道并对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年肇庆医学高等专科学校单招职业适应性考试题库及答案1套
- 2026年泉州华光职业学院单招综合素质考试必刷测试卷新版
- 2026年上海立达学院单招职业倾向性测试必刷测试卷新版
- 2026年四川应用技术职业学院单招综合素质考试必刷测试卷及答案1套
- 2026年汉中职业技术学院单招职业适应性考试题库必考题
- 2026年重庆化工职业学院单招职业技能考试题库附答案
- 2026年贵州民用航空职业学院单招职业适应性测试必刷测试卷新版
- 2026年山东城市建设职业学院单招职业倾向性测试必刷测试卷附答案
- 2026年眉山职业技术学院单招职业倾向性考试题库必考题
- 2025郑州豫能热电有限公司电煤购销合同
- 出库单模板电子版
- 某证券公司财务信息系统建立方案
- MBEC项目管理标准手册
- GB/T 700-2006碳素结构钢
- GB/T 6144-1985合成切削液
- 人保财险首台套重大技术装备综合保险条款
- 产品质量法-产品质量法课件
- 《有效沟通与实用写作教程》课件-(11)
- 部编版四年级上册语文 期中检测卷(二)
- IEC61850入门ppt课件
- 钣金车间作业指导书
评论
0/150
提交评论