问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么是上层驱动和下层驱动??

发布网友 发布时间:2022-06-02 04:16

我来回答

2个回答

热心网友 时间:2023-10-28 15:09

Windows的设备驱动框架中的上层与下层模块
在Windows的设备驱动框架中,下层模块向上层模块提供一个数据结构指针。但是,上层模块并不直接从这个数据结构获取具体的函数指针,更不直接使用这些函数指针调用下层模块中的函数;而是通过一些由内核提供的函数下达“I/O请求包”即IRP,间接地调用下层模块提供的函数,要求其执行某种操作。这就好像是向内核下一个定单,定单中告诉内核要由哪一个下层模块执行何种操作。另一方面,对于建立了形式“堆叠”的设备驱动,上层模块在运行中通常也没有如何“找到”下层模块的问题,甚至根本就不必知道其下一层是什么模块或什么设备,模块之间已在建立形式堆叠的时候固定连接好了。此时上层模块所获得的是哪一个下层模块的指针,取决于同一个堆叠中各个模块的装载次序,实际上取决于系统的配置,而相关的配置信息则最终来自相关的.inf文件,这些信息保存在集中的数据库“注册表(Registry)”中。这样就为通过系统配置改变具体设备驱动堆叠的结构提供了更大的灵活性,主要体现在:
更容易在堆叠的下层实现“重定向”,即把上层模块嫁接到不同的下层模块上;
更容易在堆叠内部插入以“过滤驱动对象(FiDO)”为代表的“过滤模块”。
最后,设备驱动模块不是在真空中运行,需要得到内核的支持,需要由内核为其构筑起一个运行环境,这个环境的主体就是内核导出函数,此外还有一些全局的变量和数据结构。这就是Windows的“设备驱动开发包”DDK中所定义(更准确地说是“声明”)的函数和变量。
事物都是在发展的,Windows的设备驱动框架也不是一开始就这样,更不是永远这样。前面所讲的是为实现“即插即用”所必须要有的要素,主要就是模块的动态装载以及模块堆叠的形成。有了这些要素,包括即插即用在内的分层设备驱动就可以实现了,但是当然还可以有一些附加的要求。从Windows 98和Windows 2000开始,微软定义了一种(在当时是)新的设备驱动框架,称为WDM即“Windows设备驱动模型(Windows Driver Model)”。WDM要求设备驱动模块除满足PnP的需要外,还必须提供两方面的功能支持:
对于WMI的支持。WMI是“Windows管理手段(Windows Management Instrumentation)”的缩写。WMI与“简单网络管理规程”SNMP相似,要求每台Windows主机都能应“管理器(Manager)”的要求提供包括设备驱动在内的各种状态和统计信息。这些信息从哪儿来呢?对于设备驱动,当然得要由相应的设备驱动模块提供。
对于电源管理的支持。有些外设能耗不小,如果有一段较长的时间没有实际使用,就没有理由不将其转入某种“省电模式”。即使是能耗不大的外设,在节能成为一个环保问题的今天,也应该在不用时使其转入省电模式。这就是电源管理要达到的目的之一。所以,微软把支持电源管理列为WDM的要素之一。
总之,“老式”的设备驱动(在形式上)是不分层、不堆叠的;如果形式上分层并堆叠,在微软的术语中就称为“PnP设备驱动”。而WDM设备驱动,则是至少在形式上满足了上述两项附加条件的PnP设备驱动。对WMI的支持和电源管理的重要性当然不容低估,但是对于我们理解Windows的设备驱动框架却并非技术关键,所以后面的叙述将集中在框架的构成与实现,而忽略这两个方面。正因为这样,我们将称之为“Windows设备驱动框架”而不是“WDM”,以免混淆。

热心网友 时间:2023-10-28 15:09

驱动,就是使得设备得以正常运行的系统内核级软件。 随着软件的发展,驱动软件越来越大,有时候几个驱动设备的软件需要一个软件来调度,而这个软件归系统内核级别高的调度。 那么很容易就会得出,上层驱动,下层驱动的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
瑞安皇都大厦几个电梯 办签证和护照的具体步骤和一共的费用!我需要详细一点的答案. 办护照流程 办护照的流程是什么 哪位推荐几部韩剧啊!!要像豪杰春香,魔女幼熙这样的,剧情要感人,最好是... 小阴唇内应该是光滑的吗,阴道口痒为什么 阴道口有像草莓样正常吗 任氏族谱字辈:世秉忠贞 永达明玉起 国正天元律迎祖大继昌 河南夏氏家谱辈分我是永城市酂城镇夏氏夏世界具家谱记载洪武二年始祖良... 夏侯姓字辈排行 夏氏辈行,我爷爷明字辈,我父亲应字辈,我是崇字辈,后面是什么辈? 电脑显卡怎么再驱动精灵上驱上 自由侠仪表盘上驱车灯故障亮起,是什么原因? 杭州上驱科技有限公司怎么样? 三菱帕杰罗劲畅2022款的超选门上驱如何操作 上海哪里可以办公交卡,要多少钱 自己diy公交卡(上海),这样上车能刷卡吗?请举例! 上海哪里有办交通卡 请问上海哪里有可以个性化交通卡的地方? 上海个性公交卡在哪可以办 西部大开发给东部带来了什么好处 请问什么是西部大开发呢? 影响西部大开发的直接原因是什么? 为什么要建设丝绸之路经济带,促进西部大开发?它有什么意义了 西部大开发的好处和坏处 北京看三叉神经痛好的医院 北京治疗三叉神经痛最好的医院是哪家? 北京 三叉神经痛排名医院 怎么样才能学好宫斗?? 请问一下怎么宫斗 控戏是什么意思 梦见上厕所大便身上爬上驱驱了代表什么 装vmware esxi 5.5.0怎么上驱二甲双胍 20吨的吊车挂上驱力器后加油门液压总泵震动很大,是什么原因啊? 货车上驱动器是什么东西 怎样轻松给电脑安装上驱动 小狗带上驱虱圈后一直抓 戴在狗脖子上驱跳蚤的项圈原理 狗狗带上驱虱项圈后一直挠,来回折腾,这是怎么回事 老司机都加钱上四驱?盲目选四驱可能会吃亏! 中行基金在途交易是什么业务? 两个矩阵上下拼在一起的性质 中国银行基金在途交易介绍 多单元拼接屏必须要用拼接处理器才能用吗?直接用矩阵可以吗 3X3的拼接屏为什么要用9个拼接处理器,只用一个不可以吗 Intel酷睿2 Q9700 价格多少? 能超频到几Ghz 黑莓9700QQ如何设置登陆,还有邮箱,我是菜鸟。谢谢!! Q9700和Q9650那个好? 黑莓9700怎么样 华硕f83vf的cpu,t4400能换q9700吗 AMD 940 比E8500 和Q9700 怎嘛样。 谢谢说明下