vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
阅读:4000回复:20

急救呀!-关于文件驱动程序的问题,请大家指点!

楼主#
更多 发布于:2002-06-28 10:38
问题如下:

  1.我有一个VXD,其功能是进行文件过滤,与znsoft的例子差不多,现我要把它改为2000/XP的IFS Filter driver,在VXD可以对所有磁盘文件进行拦截,好像是安装一个IFS HOOK,对于在2000里,使用IFS KIT来做驱动,驱动的功能如下:拦截所有文件操作,然后对文件进行比较,对于特殊的文件,还有处理用户读时进行解密,用户写文件时进行加密,对于用户来说,它不知道这个文件已加密了,但我希望它在磁盘上就是加密的文件,我该如何做?,对于文件拦截部分?有哪些东东可以让我参考?IFS KIT:filespy?,sfilter??,对于加解密部分,是不是处理IRP_MJ_READ/IRP_MJ_WRITE中进行加解密吗?

   2.文件过滤驱动的加载是先于USB Client driver?,还是晚于USB client driver?
   3.在文件过滤驱动中如何与USB Client driver通信?,user model 有createfile,read,write,deviceiocontrol?,那个驱动程序中呢?


  等待大家的救命呀!!!  :(

最新喜欢:

slummerslumme... znsoftznsoft
liuyan1
驱动老牛
驱动老牛
  • 注册日期2001-08-27
  • 最后登录2023-04-18
  • 粉丝0
  • 关注0
  • 积分1031分
  • 威望477点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-05-27 13:27
顶!!!!!
楼上的客,楼下的客,听我老坎说明白,要苛屎有草纸,不要扯我的麦席子,要苛尿有夜壶,不要在床上划地图。
remote999
驱动牛犊
驱动牛犊
  • 注册日期2003-04-24
  • 最后登录2003-06-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-26 20:47
vcmm 你搞定了没有,能否给点提示给我,我在读文件数据的时候,正常,如果不对文件编辑,直接关闭,这时也正常,可是一旦编辑了数据后保存,就出现问题,怎么回事啊?
xzjfile
禁止发言
禁止发言
  • 注册日期2001-12-14
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分6970分
  • 威望50721点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2003-04-27 15:21
用户被禁言,该主题自动屏蔽!
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-04-27 00:15


天呀!!!!


翻我老底..............^_^



看一看发贴日期!!!!!!!!
fuq_dddd
驱动老牛
驱动老牛
  • 注册日期2002-10-15
  • 最后登录2009-10-09
  • 粉丝0
  • 关注0
  • 积分331分
  • 威望57点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-04-25 13:29
问题如下:
   2.文件过滤驱动的加载是先于USB Client driver?,还是晚于USB client driver?
   3.在文件过滤驱动中如何与USB Client driver通信?,user model 有createfile,read,write,deviceiocontrol?,那个驱动程序中呢?
  等待大家的救命呀!!!  :(

USB Client driver是指什么?
usb是pnp设备,当然是文件过滤驱动先加载
星星之火 可以燎原 每一个光亮 都可能是黎明 [img]http://joke.tom.com/img/assets/1/gaoxiao_80_910.gif[/img]
MacWin
驱动中牛
驱动中牛
  • 注册日期2002-12-16
  • 最后登录2009-05-27
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望44点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-04-25 13:16
To vcmfc 及各位前辈:
我是个IFS新手,做了一年多USB DRIVER,现想学IFS,已跟综了FILESPY,有着和 当时vcmfc相同的问题.希望能获得前辈们的帮助.
我的MSN:xinjian_chen@hotmail.com


问题如下:

  1.我有一个VXD,其功能是进行文件过滤,与znsoft的例子差不多,现我要把它改为2000/XP的IFS Filter driver,在VXD可以对所有磁盘文件进行拦截,好像是安装一个IFS HOOK,对于在2000里,使用IFS KIT来做驱动,驱动的功能如下:拦截所有文件操作,然后对文件进行比较,对于特殊的文件,还有处理用户读时进行解密,用户写文件时进行加密,对于用户来说,它不知道这个文件已加密了,但我希望它在磁盘上就是加密的文件,我该如何做?,对于文件拦截部分?有哪些东东可以让我参考?IFS KIT:filespy?,sfilter??,对于加解密部分,是不是处理IRP_MJ_READ/IRP_MJ_WRITE中进行加解密吗?

2.文件过滤驱动的加载是先于USB Client driver?,还是晚于USB client driver?
3.在文件过滤驱动中如何与USB Client driver通信?,user model 有createfile,read,write,deviceiocontrol?,那个驱动程序中呢?



Chen
james_razor
驱动牛犊
驱动牛犊
  • 注册日期2002-05-17
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-07-11 16:11
我遇到问题了:对映像文件(Mapping File)无法正确的处理。在IRP_MJ_READ中Irp.Flags包含IRP_PAGING_IO标志位的时候,表示I/O处理涉及到内存管理器换入页的操作,但是这时如何得到文件关联的映像对象(用户模式下的称呼)也就是Section对象(内核模式下的称呼)以及如何对它进行操作啊?
james_razor
驱动牛犊
驱动牛犊
  • 注册日期2002-05-17
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-07-09 13:10
对于是否需要支持FastIo,这里有一个比较权威的解释:
出处:www.osr.com
Must I support Fast I/O in my file system or filter, and where is Fast I/O documented?
Fast I/O is optional for a file system. For a file system filter driver, it is required if any file system it filters supports fast I/O. Because all of the standard Windows NT/2000/XP file systems support fast I/O, essentially it is required of all filter drivers.
Fast I/O is a mechanism that was introduced into Windows NT in order to optimize the handling of certain I/O operations. In addition, fast I/O routines are also used for a variety of communications channels between the FSD and various kernel components, including the I/O Manager, the File System Runtime Library, and the CIFS File Server. Unfortunately, at the present time Fast I/O is not documented, although future versions of the IFS Kit will include documentation on how the Fast I/O routines are used.
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-07-09 09:46
1. 必须加入FastIO的处理。而且,慢慢的,你会发现有很多应用程序(尤其是MS的,比如Office),他们读写文件的方式简直是出人意表!这点,你只能在无数次的“BSOD“里面体会了。Norton也会让你大吃一惊!
2. 如果你不是写“Multi-function Driver“,基本上就是在你的USB Driver加载前。
3. 用IoCallDriver。一般都是用来调用Lower Device的,但也可以调用不在自己的栈链表里面的driver。至于这种调用应该是同步还是异步的,就要看你的Filter Driver所处的情况了。如果是在System Thread的环境下作同步调用,因为USB的速度慢,有可能会翘掉。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
hanks
驱动牛犊
驱动牛犊
  • 注册日期2002-05-20
  • 最后登录2005-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-07-08 11:26
太具体我说不好。我看过ms一个人写的例子,大概是这样的。他在内核模式和用户模式之间做了个代理,将内核模式中要执行的函数放到用户模式中执行。是否适用目前的问题,请楼上的同志谈谈看法。

[编辑 -  7/8/02 by  hanks]
james_razor
驱动牛犊
驱动牛犊
  • 注册日期2002-05-17
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-07-05 09:27
读写的请求由I/O manager产生,使用何种buffer也由I/O manager根据设备的属性(DeviceObject.Flags)决定,在你的驱动程序向下层驱动程序发送请求的时候,才有机会指定使用何种buffer。但下层区东读取buffer的时候,要检查上层驱动的属性,而上层驱动的属性(也就是你的驱动)一般在挂接的时候只是单纯复制被挂接驱动的原有属性(我所看过的所有例子均是如此,且不清楚如果属性不一致是否会有隐患存在),所以从这个意义上来说,使用何种buffer是固定的。
hanks,不知你基于COM体系的代理是怎么工作的?能否具体说说?
hanks
驱动牛犊
驱动牛犊
  • 注册日期2002-05-20
  • 最后登录2005-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-07-05 08:51
我来说两句,希望各位指正。是否可以指定读写的buffer,对它进行加解密。如果做一个基于COM体系的代理,将KENRL mode 的转为user mode的是不是会对以后的工作有益?!
james_razor
驱动牛犊
驱动牛犊
  • 注册日期2002-05-17
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-07-04 17:10
而且就我现在调试的情况:在dos窗口中用type列出一个文件的内容,第一个512字节,由IRP处理,后面的七个由FastIo处理,然后又是一个IRP,再是若干个FastIo,规律完全不可循。如果文件由Notepad打开,情况又不一样了,全部由IRP处理:先是8字节,然后是4k,然后又是8个字节(回到文件开始),然后是32k,且4k和32k时的数据报都无法用我已知的方法处理,systembuffer无效,mdl无效,userbuffer无效,郁闷中…… :(
james_razor
驱动牛犊
驱动牛犊
  • 注册日期2002-05-17
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-07-04 16:43
不知道你是否已经开始编码,我遇到的情况是:如果不写FastIoDispatch,系统铁定崩溃。
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-07-04 16:35
看来还是有同命中人.............

to hanks,james_razor:即然大家做相同的事,能留个联系MAIL吗?

我的mail:vcmfc@sina.com

to james_razor:是不是CSDN上的VCMFC都没有关系,重要的事大家站在同一条路上,而且我以前是做应用层的,现在改为底层,跟大家一样,以后还请大家多多指点呢!


我要我功能是:

在IRP_MJ_CREATE中判断文件是需要保护吗?,是的话,在IRP_MJ_READ/IRP_MJ_WRITE中对这个文件进行加解密,如不是,下传给下层文件系统处理。我想我应该不用处理FASTIO吧!,我只想在文件存储是进行控制。

谢谢大家的指点。
james_razor
驱动牛犊
驱动牛犊
  • 注册日期2002-05-17
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-07-04 15:50
此vcmfc是否csdn里的那个vcmfc?如果是,那可就太巧了,赫赫。
你现在做的这个和我做得差不多,不过问题非常复杂,至少我现在感觉是,你不光需要处理IRP_MJ_READ和IRP_MJ_WRITE,而且需要处理FastIoDispatch,大约有25个函数。FastIoDispatch多归多,情况倒较为简单,它只适用于同步的缓冲的数据传输方式。IRP可就复杂多了,DO_BUFFERED_IO、DO_DIRECT_IO、或者都不是、同步、异步……我到现在都没搞出一个头绪来,系统频频死锁、重起,唉。
至于你说的那几个问题,第一个问题,由于你可以指定驱动程序装载的时机,所以,是不一定的。如果是以SERVICE_DEMAND_START,不用说,一般是在USB Client driver之后的,如果是选择SERVICE_BOOT_START或者SERVICE_SYSTEM_START,那你可以用softice察看装载的顺序。驱动程序之间如何通讯我不太清楚。user model有createfile,驱动程序下就是ZwCreateFile、ZwReadFile等了。
小弟也有许多问题,希望能共同交流。
hanks
驱动牛犊
驱动牛犊
  • 注册日期2002-05-20
  • 最后登录2005-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-07-04 12:22
vcmfc:
我还想问一句,你做加解密在哪一层做,还在驱动这一层吗?
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-07-04 10:11
那我惨了............
hanks
驱动牛犊
驱动牛犊
  • 注册日期2002-05-20
  • 最后登录2005-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-07-03 18:19
vcmfc:
   我和你做差不多的工作,我想IRP_MJ_READ/IRP_MJ_WRITE中不能加解密吧?要不然,你分析数据包就够你受的。你说呢? :)
上一页
游客

返回顶部