wdk minifilter 自带示例的简要说明

news/2024/5/19 3:21:53

最近要用wdk 7 的minifilter做一个文件过滤的东西,苦于没有资料可用,明明知道 winDDK/src/filesys/minifilter的范例很有用,但就是无从下手,google了半天(SB google.cn刚换马夹变成了google.hk,速度叫个慢哟),最终还是抱上了msdn的大腿, 居然在MSDN library> win32 and com development >windiws Driver Kit > device and driver technologies> installable file system drivers> IFSK samples 找到了英文简介。

  没办法,自已翻译吧,虽然咱的E文水平一般,可好歹也算是“填补国内空白”不是? 不要埋怨哥,哥没有传说......

 

     原文地址:http://msdn.microsoft.com/en-us/library/dd445225.aspx

      转载请注明来源!http://blog.csdn.net/jykj_007

cancelSafe minifilter sample
描述: 如果你要使用cancel-safe(什么意思?)队列 ,就用cancelsafe minifilter sample吧。  
操作原理:当cancelsafe minifilter 附属于一个卷时,将初始化一个cancel-safe 队列。 当这个minifilter销毁时,监控器读取通过i/o栈的操作。如果这个读操作已经在一个名叫csqdemo.txt文件上运行, 这个操作将被排到cancel-safe 队裂, 排队操作将在短暂的停顿(通过一个单独的运行在系统上下文的工作线程)之后完成  (去死啊,搞那么多that)


minispy minifilter sample
描述:本示例是一种监控和记录任何 I/O以及重现系统内部事务活动 的工具。这个例子类似大名鼎鼎的filespy,不过它是用minifilter实现的。


  操作原理: minispy由用户模式和内核模式组成,内核模式组件注册(相当于各种利用过滤管理器 进行i/o和事务操做
)的回调函数,这些回调函数帮助minispy记录任何系统的i/o和事务动作事件。当一个用户能够访问记录信息时,这个记录信息通过用户模式组件,即可以输出到屏幕上也可以输入到磁盘上的log文件里
   要观察一个设备上的i/o 活动,你必须明确地指定minispy和这个设备的联系,同样,也可以要求minispy停止对一个特定设备记录日志。


ctx minifilter sample
描述: 本例用来说明如何指派你的minifilter和实例、文件、流或流句柄的上下文。
  操作原理:ctx minifilter展示如何从和实例、文件、流或流句柄指派上下文或移除上下文,无论一个或多个对象被创建,ctx都会指派一个上下文。 当指派一个文件的上下文时,例子同样创建一个流和流句构的上下文。所有的上下文将完全被过滤管理器用minifilter提供的回调函数删除。

passThrough minifilter sample

   描述: passThrough  minifilter 说明 如何为不同类型的irp指定回调函数

   操作原理: passThrough minifilter没有任何真正的功能.对于每种i/o操作
,预回调和后回调函数同样被调用,这些回调函数仅仅在堆栈的下一个过滤器之前。

fastfat file system
 discription :你可以用它来写全新的文件系统(if U want....)
  I had never think of to write a new file system...even the Boss kill me

scanner minifilter sample
  discription: 本例适用于 有志于写检测文件数据过滤器的“developers”,尤其是反病毒就是属于这个领域滴(ms 卡巴斯基就用到minifilter)!

 操作原理:sanner包括用户模式和内核模式组件,内核组件识别合适的时机去扫描一个文件的数据并且传递数据到用户模式组件做更多的确认。用户模式组件创建一个线程的编号去等待内核组件的确认??  在批描到脏数据字符后,用户模式发送一个合适的反应给内核模式组件。

   内核模式组件仅用特定的扩展名(extensions)扫描文件.文件首先在成功的打时扫描。如果文件被写访问打开,扫描将在文件关闭前重新执行。 扫描同样可以运行在将被写入到文件的数据上,当数据里发现脏字符串时写将被拒绝。当脏字符在文件关闭期间发现,打印一个debug 消息。


swapbuffers minifilter sample

description: swapbuffer minifilter 展示 如何交换读和写数据之间的缓存。这项技术在加密过滤时相当有用,因为你必须在数据写到磁盘上之前加密,在数据从磁盘上读取后解密。 由于加解密必须透明,你不能直接使用系统提供的缓存,因此中间缓存是必须引进滴。

操作原理:swapbuffer minifilter 在读/写或目录控制操作前引进一个新缓存,对应的操作随即运行在新缓存,以代替初始提供的缓存, 在操作完成后, 新缓存的内容被拷贝回初始缓存

    转载请注明来源!http://blog.csdn.net/jykj_007


http://www.niftyadmin.cn/n/4644367.html

相关文章

python使用pyinstaller生成的.exe程序闪退

问题描述: python使用pyinstaller生成的.exe程序在win10下执行正常,在windows server 2008 R2机器执行闪退。 原因及解决办法: 1、程序执行过快导致的,程序加如下代码即可; input(‘请输入Enter结束脚本检查程序…’) …

如何从内核模式设备驱动程序中打开文件以及如何读取或写入文件

对象名称来引用文件内核模式设备驱动程序引用到一个文件及其对象的名称。此名称是与该文件的完整路径一起 /DosDevices。例如对于 C:/Windows/Example.txt 文件的对象名称是 /DosDevices/C:/Windows/Example.txt。然后通过调用 InitializeObjectAttributes 函数的为 OBJECT_ATT…

擦香水常用部位

2019独角兽企业重金招聘Python工程师标准>>> 擦香水常用部位:耳后,手腕,手肘,腰部,小腿内侧。 转载于:https://my.oschina.net/jingshishengxu/blog/16030

‘gbk‘ codec can‘t decode byte 0x80 in position 9: illegal multibyte sequence

问题描述: python里使用with函数打开文件,文件里有中文字符时,报错: ‘gbk’ codec can’t decode byte 0x80 in position 9: illegal multibyte sequence 代码写法如下: with open(..\test.txt) as a:报错如下&#…

PHP+APACHE+MYSQL+WINDOWS 环境配置秘笈,一定行!!!!

三、配置过程:(一)http.conf 把PHP直接作为apache的一个模块运行,我在里面加了两句:LoadModule php5_module "E:/php/php5apache2.dll"AddType application/x-httpd-php .php我在E:\apache2目录下建立了一个www的目录用于存放我的站点文件,在h…

minifilter开发文件过滤驱动、以及syser调试的经验

minifilter开发文件过滤驱动、以及syser调试的经验。 刚刚完成一个产品的开发,用了两个月,真不容易,像我这种菜鸟,为了搞 清一个常识,得从老谭的那本古董级C程序设计翻起。 首先说驱动教程。 楚狂人谭文的《寒江独钓…

算法-字符串之全排列

字符串的全排列是字符串类的算法题的一个考察点,属于普通问题,它有两种实现方法,递归算法和非递归算法,非递归的方法要稍微难一点,以下会依次进行介绍。 全排列的递归算法 算法思想:求n位的字符串的全排列&…

栈的数组实现和链式实现

1,堆栈ADT StackADT packageStack;publicinterfaceStackADT {publicvoidpush(Object element);//压栈publicObject pop();//出栈publicbooleanisEmpty();publicintsize();publicObject peek();//返回栈顶对象的一个引用publicString toString();}2,链式…