hhyDriver
驱动小牛
驱动小牛
  • 注册日期2007-06-06
  • 最后登录2009-01-19
  • 粉丝0
  • 关注0
  • 积分154分
  • 威望150点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
阅读:3733回复:12

minifilter的读写处理

楼主#
更多 发布于:2007-09-28 16:15
sfilter 的read和write中,过滤IRP_NOCACHE | IRP_PAGING_IO | IRP_SYNCHRONOUS_PAGING_IO标志即可得到正常的读写。minifilter的read和write中如何得到正常读写呢?盼熟悉者指点,谢。

最新喜欢:

LeopardLeopar...
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2007-09-28 17:02
自己看文档和SWAPBUFFER的例子。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
hhyDriver
驱动小牛
驱动小牛
  • 注册日期2007-06-06
  • 最后登录2009-01-19
  • 粉丝0
  • 关注0
  • 积分154分
  • 威望150点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-09-29 09:47
引用第1楼wowocock于2007-09-28 17:02发表的  :
自己看文档和SWAPBUFFER的例子。

就是在看swapbuffer。通过监视发现,按照其中的流程好像读不出文件中数据,若过滤irp_nocache等标志,则没有读操作
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
地板#
发布于:2007-09-30 13:59
过滤irp_nocache等标志 应该没有读操作才对吧
galaxay
驱动小牛
驱动小牛
  • 注册日期2004-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望129点
  • 贡献值0点
  • 好评度129点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-09-30 15:57
一样的还是过滤过滤IRP_NOCACHE | IRP_PAGING_IO | IRP_SYNCHRONOUS_PAGING_IO标志
clarence
驱动牛犊
驱动牛犊
  • 注册日期2006-05-08
  • 最后登录2009-09-30
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望97点
  • 贡献值0点
  • 好评度76点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-09-30 18:02
看你要过滤什么样的读写啊, 与磁盘相关的,0x43就可以,要是Cache的就要处理FastIO了
hhyDriver
驱动小牛
驱动小牛
  • 注册日期2007-06-06
  • 最后登录2009-01-19
  • 粉丝0
  • 关注0
  • 积分154分
  • 威望150点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-10-08 10:44
引用第4楼galaxay于2007-09-30 15:57发表的  :
一样的还是过滤过滤IRP_NOCACHE | IRP_PAGING_IO | IRP_SYNCHRONOUS_PAGING_IO标志

确实是这样。
sfilter模型中read过滤这些标志后,重启计算机能进入read,而minifilter模型read过滤这些标志,重启则不能进入read(过滤标志),这是为什么呢?fastio???
galaxay
驱动小牛
驱动小牛
  • 注册日期2004-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望129点
  • 贡献值0点
  • 好评度129点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-10-08 11:03
看看 read时候的文件名吧
hhyDriver
驱动小牛
驱动小牛
  • 注册日期2007-06-06
  • 最后登录2009-01-19
  • 粉丝0
  • 关注0
  • 积分154分
  • 威望150点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-10-08 11:36
引用第7楼galaxay于2007-10-08 11:03发表的  :
看看 read时候的文件名吧


debugview监视如下:
the irp flag is: 900, the data flag is:1, the file is: \??\E:\hu\1.txt, read len is:24

文件名是打开的文件名,irp标志是IRP_DEFER_IO_COMPLETION | IRP_READ_OPERATION,Data->Flags 是FLTFL_CALLBACK_DATA_IRP_OPERATION,处理方法直接leave,即没有post方法。不知是否是这里问题?
hhyDriver
驱动小牛
驱动小牛
  • 注册日期2007-06-06
  • 最后登录2009-01-19
  • 粉丝0
  • 关注0
  • 积分154分
  • 威望150点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2007-10-10 17:48
记得某位高人说过,IRP_DEFER_IO_COMPLETION 标志是一个过渡标志,最终会变成IRP_NOCACHE 标志。
(1)清除文件缓存后,先出现IRP_DEFER_IO_COMPLETION 标志,直接往下传,随即出现IRP_NOCACHE 标志。
(2)重启计算机,先出现IRP_DEFER_IO_COMPLETION 标志,直接往下传,随后没有出现IRP_NOCACHE 标志。真是奇怪,sfilter模型中没有此问题,而minifilter模型中有。

哪位高人能指点一下?
fooegg
驱动小牛
驱动小牛
  • 注册日期2007-08-25
  • 最后登录2008-08-31
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望111点
  • 贡献值0点
  • 好评度110点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-10-11 02:26
sfilterr 的fastio那一组和minifilter的不一样呀,具体你慢慢瞅下喽
毛主席夸我水灌得好
galaxay
驱动小牛
驱动小牛
  • 注册日期2004-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望129点
  • 贡献值0点
  • 好评度129点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2007-11-02 22:16
* .txt文件是mem map机制,试试其它type的文件就知道了
lovemi
驱动牛犊
驱动牛犊
  • 注册日期2007-10-30
  • 最后登录2007-11-29
  • 粉丝0
  • 关注0
  • 积分660分
  • 威望67点
  • 贡献值0点
  • 好评度66点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2007-11-07 19:23
游客

返回顶部