当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

文件系统驱动编程底子篇之2——尺度模子[VC/C++编程]

赞助商链接



  本文“文件系统驱动编程底子篇之2——尺度模子[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

2、尺度模子

WDM采取了构造化的编程方法,履行效率很高,但编写效率较低,这也是DriverStudio得以发展的重要缘由.正如掌握了COM原理,利用ATL才能掌握精华的原理一样,读者需求忍耐记忆大量底子知识的“痛楚”,暂时放弃编写驱动程序的捷径.

下面的某些图示稍显陈旧,不过已经足以阐明问题了.

固然驱动程序分为多个种类(图1-4),但它们包含的基本内容(图1-5)是一致的.每个驱动程序都从初始化程序DriverEntry进入,通过某个调派例程DispatchXXX派发特定号令(我们无妨称之为IRP),这些IRP有大概在调派例程里就得到了办理,也有大概交给驱动程序的其他部份办理.假如驱动程序A本身不能处理这个IRP号令,它就需求将IRP传送到更下层的驱动B,由它们来处理,此时驱动程序A大概因为等候IRP完成而处于就寝状况,或持续处理新的IRP,直到下层驱动B告诉(或通过某种机制唤醒并告诉)A该IRP已经处理完毕了,此时A就将处理的后果(我们称之为NTSTATUS)返回本来派发这个IRP的发动人.这就是驱动程序处理IRP的一个简化历程.

我们提到了驱动程序是分层的这个概念,那么若何理解分层的概念呢?请看图示:

引用资料1的原话:WDM模子利用了如图2-1的层次构造.图中左边是一个设备对象仓库.设备对象是系统为帮忙软件管理硬件而成立的数据构造.一个物理硬件可以有多个这样的数据构造.处于仓库最底层的设备对象称为物理设备对象(physical device object),或简称为PDO.在设备对象仓库的中间某处有一个对象称为功效设备对象(functional device object),或简称FDO.在FDO的上面和下面还会有一些过滤器设备对象(filter device object).位于FDO上面的过滤器设备对象称为上层过滤器,位于FDO下面(但仍在PDO之上)的过滤器设备对象称为下层过滤器.

由某个家伙(大概是用户情势下的利用程序,也大概是系统内核组件)发动的IRP从上层过滤器驱动程序一向顺流而下,传送到总线驱动程序处理后,再逐级返回上层,终究发动人得处处理的后果.

普通情形下,IRP大概不需求传送到总线驱动程序就被处理掉了,但假如大家都不熟习这个IRP,他们就只好逐级下传了,假如此时有个搞破坏的驱动程序混了进来,拦阻了这个IRP,轻则丧失用户信息、重启、死机,重则造成系统区的数据混乱,你除了重新安装操作系统再无任何事情可做.由此可见,我们不要求驱动程序“有抱负”,但必须“有规律”,每个驱动程序都必须严峻按照标准书写代码,这要求编程人员具有较高的本质.

下面我们来理解驱动编程里最基本的尺度模子,这个模子不能办理全部的编程需求,按照需求,它将存在各种改变.我们来看看这个驱动编程里的“基本定式”:

IO管理器,大家应当理解为该IRP的发动人,大概是张三,也大概是李四,而不是某个固定的组件.这个模子表明了单个驱动程序里各部件的合作与分工,注意它是个循环不断的历程,它的发动人与终究承受人是相同的,所谓“从那边来,就回那边去”.假如我们的编程不触及真正的硬件,StartIo例程、中止服务例程ISR、DPC例程都大概不存在.各部件的具体功效请参看资料1的第五章.


  以上是“文件系统驱动编程底子篇之2——尺度模子[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • Win7中无法成立文件‘新建 库.library-ms’文件系统错误(16389)"若何办理
  • Linux文件系统的主要目录构造阐明及分区筹划
  • 2种办法确保Win 7文件系统安定性
  • 2种办法确保Windows 7文件系统安定性
  • Linux 3.0 文件系统EXT4 与 Btrfs测试对比
  • <b>Linux文件系统保护工具</b>
  • 教你将NTFS格局文件系统转换成FAT32格局
  • MySQL文件系统先睹为快(目录)
  • MySQL文件系统先睹为快(2)
  • MySQL文件系统先睹为快(1)
  • MySQL文件系统先睹为快(3)
  • 文件系统驱动编程底子篇之2——尺度模子
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .