阅读:2964回复:13
我为IRP_MJ_READ交换Buffer不成功,请大家帮忙
在minifilter中:
我想为IRP_MJ_READ交换buffer。 我看了swapbuffer的sample code,我用里面的post-op read的方法在我的post-op read里得到 IRP_MJ_READ的 origbuf 地址,然后把我的 newbuf 的内容 RtlCopyMemory 到 origbuf 中去,但是当我打开txt file时并没有看到我的信息被替换进去。 我的思路和swapbuffer 例子的思路不同:我并没有在pre-op read中做任何处理,我没有用我的 newbuf地址去替代origbuf的地址,我只是在post-op read里,当origbuf已经填充了数据之后,用我的newbuf的东西替换进去,这时我也并没有改变origbuf的地址。 此外,我也设置了Data->iostatus->information的值为我的newbuf的大小,并且也 setcallbackdataDirty。 请问我该怎么解决这个问题? |
|
沙发#
发布于:2008-07-15 15:06
有时间就顶吧,直到解决
|
|
板凳#
发布于:2008-07-08 16:39
楼主怎么搞定的,我也在为你的问题发愁呢,可以发点代码吗?谢谢
|
|
地板#
发布于:2008-06-10 11:09
用MMFs 是如何搞定的?
|
|
地下室#
发布于:2008-06-06 16:13
Map 这种方式 与 普通的read 方式 除了在上层上有使用不同外,
对下层的文件 irp read 、write也会有影响吗? 哪位 可以给小弟解释下,谢谢了! |
|
|
5楼#
发布于:2008-06-05 00:41
MMF 以后,不是用指针直接指内存的吗?所以应该就不用调 readfile 了吧?
多谢楼上指点,谢谢~ |
|
6楼#
发布于:2008-06-03 08:28
如果你想它有一个noncache的read的irp,你可以在这个txt第一次create的时候清缓存,这样随后会有一个noncache的read的irp,不要错过咯!
|
|
7楼#
发布于:2008-06-02 18:03
引用第6楼microbe于2008-06-02 08:25发表的 : 是啊 用Map了就不读了吗?还有缓存问题? 怎么解决这种map方式的读和写,还有缓存改怎么处理? 大侠们给个清晰的解释吧 谢谢啦! |
|
|
8楼#
发布于:2008-06-02 08:25
memory map就不读了??我想你的这个问题答案并不是说因为它是mmp吧。。。可能是系统已经将你的文件预读了,所以它没有真正的读的irp。
|
|
9楼#
发布于:2008-06-01 10:41
现在知道notepad是用MMFs的了
浪费大家时间了,不好意思 |
|
10楼#
发布于:2008-05-31 12:00
怎么改变IRP_MJ_READ的buffer的内容
怎么改变 IRP_MJ_READ 的 buffer 的内容,使得在用 notepad 打开的时候能显示出更改过的内容?谁能给几行关键代码?我怎么弄都弄不出来。 |
|
11楼#
发布于:2008-05-30 19:51
当打开 txt 文件的时候,为什么 minispy 没有监测到 IRP_MJ_READ ?但是从我当前这个代码的调试来看,确实有发出 IRP_MJ_READ 的啊。
|
|
12楼#
发布于:2008-05-30 16:53
我确实直接用rtlcopymemory改变origbuf的内容,可它就是没法显示出来(PS:我针对的是txt 文件)。
|
|
13楼#
发布于:2008-05-30 16:33
不需要替换什么,你直接更改originBuffer的内容,但是不要改originBuffer的地址,也不用setDirty,反正我是这样搞的
|
|