文件过滤驱动拦截的IRP主要包括以下几个:
IRP_MJ_CREATE,文件创建操作,文件的任何操作,都是从这里开始的。
IRP_MJ_CLEANUP,文件的HANDLE句柄全部关闭会触发这个消息
IRP_MJ_CLOSE,文件对象 FILE_OBJECT引用减为0,文件对象即将被删除时触发。
IRP_MJ_READ、IRP_MJ_WRITE, 文件的读写操作
IRP_MJ_QUERY_INFORMATION 查询文件信息,比如文件创建修改时间,文件大小等等。
IRP_MJ_SET_INFORMATION 设置文件信息,比如删除文件,重名文件,更改文件大小等等。
IRP_MJ_DIRECTORY_CONTROL 查询某个目录下的文件和子目录信息。

还有几个也需要处理的,如果不处理可能某些文件操作不正常。
IRP_MJ_QUERY_VOLUME_INFORMATION ,查询目录所在的卷设备信息。
IRP_MJ_QUERY_SECURITY 查询安全信息,在win7系统得处理这个,否则exe程序无法执行。
(还包括其他需要处理的IRP)。

看起来处理的IRP不算多,我当初也是这么想的,可是处理的细节却挺多。
(查看 WDK的实例里边的 fastfat目录 ,微软实现FAT32文件系统的源代码,那里边除了代码还是代码,而且还是异常的多)

我在前几篇文章中讲过虚拟磁盘驱动, 虚拟磁盘驱动加载的时候,会在Windows磁盘管理器出现一个新的磁盘,把这个磁盘分区格式化之后,可以正常的把他当成一个真正的磁盘来操作,可以在上边存放,删除文件目录等。
这些操作,经过Windows系统重重解析处理,最后会转换成对虚拟磁盘驱动单纯的对磁盘扇区的偏移读写操作,
然后把对扇区的偏移读写,通过多种途径比如是一个真正的文件,保存起来。操作这个虚拟磁盘,最终就变成操作一个单纯文件。
类似的概念,比如 Windows自带的vhd或vhdx格式的虚拟磁盘文件。

http://blog.csdn.net/fanxiushu/article/details/43636575

文件过滤驱动实现目录重定向(一)good的更多相关文章

  1. Windows 文件过滤驱动经验总结

    Windows 文件过滤驱动经验总结作者:sinister 本文转载自驱动开发网 看了 ChuKuangRen 的第二版<文件过滤驱动开发教程>后,颇有感触.我想,交流都是建立在平等的基础 ...

  2. 基于Minifilter框架的文件过滤驱动理解

    概述 Minifilter即File System Minifilter Drivers,是Windows为了简化第三方开发人员开发文件过滤驱动而提供的一套框架,这个框架依赖于一个称之为Filter ...

  3. [转载]文件过滤驱动 文件系统激活通知 IoRegisterFsRegistrationChange函数实现

    IoRegisterFsRegistrationChange 注册一个文件系统变动回调函数,用来被通知文件系统的激活和注销,激活是指第一次加载文件系统,当一个文件系统已经加载后,当加载一个同种文件系统 ...

  4. 文件过滤驱动框架Minispy解析一

    因工作需要,研究minispy文件过滤框架,上图为我整理出的其内核部分代码的逻辑.

  5. File System Minifilter Drivers(文件系统微型过滤驱动)入门

    问题: 公司之前有一套文件过滤驱动,但是在实施过程中经常出现问题,现在交由我维护.于是在边看代码的过程中,一边查看官方资料,进行整理. 这套文件过滤驱动的目的只要是根据应用层下发的策略来控制对某些特定 ...

  6. 驱动开发:内核枚举Minifilter微过滤驱动

    Minifilter 是一种文件过滤驱动,该驱动简称为微过滤驱动,相对于传统的sfilter文件过滤驱动来说,微过滤驱动编写时更简单,其不需要考虑底层RIP如何派发且无需要考虑兼容性问题,微过滤驱动使 ...

  7. 一个文件系统过滤驱动的demo

    因为没写过FSD过滤驱动,所以拿来练练手,没有什么技术含量.参考自Win内核安全与驱动开发. 先梳理一下大概的流程,就是怎么去绑定设备栈.怎么去过滤各种请求的. 首先肯定是要绑定设备栈的,来看下怎么绑 ...

  8. 常用命令(过滤、管道、重定向、ping 命令、netstat 命令、ps命令)

    常用命令 过滤 过滤出 /etc/passwd 文件中包含 root 的记录 grep 'root' /etc/passwd 递归地过滤出 /var/log/ 目录中包含 linux 的记录 grep ...

  9. Windbg对过滤驱动DriverEntry函数下断点技巧

    方法1: 1> 先用DeviceTree.exe查看指定的过滤驱动的Load Address(加载地址) 2> 再用LordPE.EXE查看指定过滤驱动文件的入口点地址 3> 计算过 ...

随机推荐

  1. Innosetup打包自动下载.net framework 动态库及替换卸载程序图标.

    在使用了一段时间微软自带的安装包打包工具后,总感觉不太顺利,于是便想着找一种更简单稳定的打包工具,这类工具其实还不少,最终经过各种考量,我们选择了 InnoSetup , 该工具是一个完全免费的Win ...

  2. 日志记录类LogHelper

    开源日志log4net使用起来很方便,但是项目中不让用,所以自己重写了一个类,用来记录日志,比较简单. 1.首先是可以把日志分成多个类型,分别记录到不同的文件中 /// <summary> ...

  3. Oracle笔记(三)单行函数

    -函数 函数像一个黑盒子一样(看不到里边的构造),有参数返回值,可以为我们完成一定的功能. -单行 这种函数会对结果中的每一行计算一次,每行返回一个结果,单行概念区别于分组函数. 单行函数主要分为以下 ...

  4. 12天学好C语言——记录我的C语言学习之路(Day 8)

    12天学好C语言--记录我的C语言学习之路 Day 8: 从今天开始,我们获得了C语言中很有力的一个工具,那就是函数.函数的魅力不仅于此,一个程序到最后都是由众多函数组成的,我们一定要用好函数,用熟练 ...

  5. python 自动化之路 day 01 人生若只如初见

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 Python 注释 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式i ...

  6. Json概述以及python对json的相关操作《转》

    什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programm ...

  7. 初识jQuery(适合初学者哟.........)

     您要知道!! jQuery是目前使用最广泛的javascript函数库.据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库. 微软公司甚至把jQuery作为他们的官方库.对 ...

  8. CSS浮动特性总结

    1.假设现在CSS中没有浮动(float)属性,那么会变成一个什么样子.我们会发现,目前流行采用浮动方法实现的无论是分栏布局,还是列表排列我们都可以用其他一些CSS属性(不考虑table)代替实现,唯 ...

  9. oracle日期格式数据修改

    select * from INVOICE_NEW where ref_no='32308' update INVOICE_NEW set check_d=to_date('2015/11/16', ...

  10. PHP LINUX Notice: undefined $_GET完美解决方法

    PHP Notice: undefined 平时用$_GET[‘xx’] 取得参数值时,如果之前不加判断在未传进参数时会出现这样的警告: PHP Notice: undefined index xxx ...