阅读:3733回复:12
minifilter的读写处理
sfilter 的read和write中,过滤IRP_NOCACHE | IRP_PAGING_IO | IRP_SYNCHRONOUS_PAGING_IO标志即可得到正常的读写。minifilter的read和write中如何得到正常读写呢?盼熟悉者指点,谢。
|
|
最新喜欢:Leopar... |
沙发#
发布于:2007-09-28 17:02
自己看文档和SWAPBUFFER的例子。
|
|
|
板凳#
发布于:2007-09-29 09:47
引用第1楼wowocock于2007-09-28 17:02发表的 : 就是在看swapbuffer。通过监视发现,按照其中的流程好像读不出文件中数据,若过滤irp_nocache等标志,则没有读操作 |
|
地板#
发布于:2007-09-30 13:59
过滤irp_nocache等标志 应该没有读操作才对吧
|
|
地下室#
发布于:2007-09-30 15:57
一样的还是过滤过滤IRP_NOCACHE | IRP_PAGING_IO | IRP_SYNCHRONOUS_PAGING_IO标志
|
|
5楼#
发布于:2007-09-30 18:02
看你要过滤什么样的读写啊, 与磁盘相关的,0x43就可以,要是Cache的就要处理FastIO了
|
|
6楼#
发布于:2007-10-08 10:44
引用第4楼galaxay于2007-09-30 15:57发表的 : 确实是这样。 sfilter模型中read过滤这些标志后,重启计算机能进入read,而minifilter模型read过滤这些标志,重启则不能进入read(过滤标志),这是为什么呢?fastio??? |
|
7楼#
发布于:2007-10-08 11:03
看看 read时候的文件名吧
|
|
8楼#
发布于:2007-10-08 11:36
引用第7楼galaxay于2007-10-08 11:03发表的 : 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方法。不知是否是这里问题? |
|
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模型中有。 哪位高人能指点一下? |
|
10楼#
发布于:2007-10-11 02:26
sfilterr 的fastio那一组和minifilter的不一样呀,具体你慢慢瞅下喽
|
|
|
11楼#
发布于:2007-11-02 22:16
* .txt文件是mem map机制,试试其它type的文件就知道了
|
|
12楼#
发布于:2007-11-07 19:23
|
|