微文件系统过滤驱动开发指南.pdf

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微文件系统过滤驱动开发指南

Windows文件系统过滤管理器之 微过滤器驱动开发指南 0.译者序 对我来说,中文永远是最美,最简洁,最精确和最高雅的文字。 本文翻译仅仅用做交流学习。我不打算保留任何版权或者承担任何责任。不要引用到赢利出版物中 给您带来版权官司。本文的翻译者是楚狂人,如果有任何问题,你可以通过邮箱MFC_Tan_Wen@163.com, 或者是Q或者是MSN walled_river@与我交流。 我翻译此文出于对文件系统技术的兴趣。这就是新的文件系统过滤接口。其实也不算什么新的东西, 微软开发了另一个“ 旧模型的”过滤驱动,称之为过滤管理器(Filter Manager)。从而提供了一系 列新的接口来让你开发新的过滤器。确实这套接口变简单清晰了。你至少避免了包含无数个信息的 IRP,避免了请求在各个部件中循环的发来发去,一个分发例程中处理无数中情况,一不小心系统崩 溃。我不知道花了多少时间才弄明白一个简单的缓冲读请求从用户到过滤到文件系统和缓冲管理器, 虚拟内存管理器之间的关系!现在你也许不需要再管他们了,仅仅做好自己的过滤工作就可以。 这套接口强大吗?能实现你想要的功能吗?你很快就发现你没有研究过sfilter就看不懂 Minifilter,或者是还得从sfilter开始做起更灵活一点。微软就是这样,拿僵硬而且也不简单的东 西来“简化”强大灵活但是设计上一团糟的东西,对于你来说是两者都必须学习,最后你的脑子被微软 塞得满满的,不过没关系,我们已经习惯了. 此文的原文是《Filter Driver Development Guide》,出自微软的网站。我在以下这个地址下载得到此文: /download/e/b/a/eba1050f-a31d-436b-9281-92cdfeae4b45/FilterDriverDe veloperGuide.doc 我尽量在翻译中使文章保持原貌。如果您认为此文无法理解,建议您首先阅读旧的文件过滤驱动的相关资料。 我认为必须有文件系统和windows驱动的相关知识,才能阅读此文。 我未必总是使用规范的名词,但我总是使用最容易理解的名词。一些常用的可能不翻译,比如IRP,MDL,有驱动 开发经验的人应该可以理解。另一些可能采用中文(英文)的方式。 一些解释如下: 例程(Routine):我不懂得例程和函数有什么不同。我认为例程就是函数。称为Routine而不是Function可能 是为了避免其他c程序员理解得太容易。 接口(Api):编程开发接口,一个提供给你调用的函数。 流(Stream):如果你写过文件系统驱动,那么你一定知道FileObject,对你来说一个流就是一个FileObject。 文件(File):一个文件可能有多个流,因为可能多次打开,多个FileObject可能对应一个文件。 域(Field):一个数据结构中的一个数据成员。喜欢数据库的人可能称为字段。喜欢面向对象的称为数据成员。 透明(transparence):看不见,意味着也不需要管。不过请注意透明的反意词绝对不是不透明(opacity)。 不透明(opacity):不知道的。比如空指针。因为空指针指向的是什么,从空指针本身是了解不到的。所以称 为不透明的指针。 回调(Callback)函数:一个由系统调用而且原则上你不能自己调的函数。 预操作(pre-operation)回调:如果打算过滤一个操作,那么这个回调出现在操作完成之前。 后操作(post-operation)回调:如果打算过滤一个操作,那么这个回调出现在操作完成之后。 1.概述 这个文档用于I/O管理器和基本文件系统之间的过滤驱动。文件系统可能是本地或者网络的。这个文 档不涉及文件系统和存储设备之间的过滤驱动,比如FtDisk和DMIO. 我们将主要讨论一种新的文件系统过滤驱动模型,所谓的微过滤器(minfiter). 以前的文件系统过滤基于一个例子sfilter.使用IRP和设备对象进行过滤。我们现在称之为“ 旧过滤 模型” 新的架构中一个关键的组件其实是一个旧过滤模型的文件系统过滤驱动,被称为“过滤管理器 (Filter Manger)”.在未来,微软发行的操作系统将默认安装这个驱动。(译者注:现在,你得手 工安装。)这个驱动通过提供一些库供微过滤器调用来管理所有的微过滤器。必要的头文件,库和 二进制代码都在微过滤器IFSKit中。 为何要开发一

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档