阅读:4490回复:26
为什么我打开一个文件,却收不到IRP_MJ_READ
用记事本打开一个txt文件,却没有收到IRP_MJ_READ?保存文件的时候可以收到IRP_MJ_WRITE,有大虾知道怎么回事吗? :)
|
|
沙发#
发布于:2004-01-13 14:53
sorry,说错了,不是收不到irp_mj_read,而是
Irp->Flags & (IRP_NOCACHE | IRP_PAGING_IO | IRP_SYNCHRONOUS_PAGING_IO) 总是为否 |
|
板凳#
发布于:2004-01-13 16:38
可能都到FASTIO里了。。。。。
|
|
|
地板#
发布于:2004-01-14 08:49
可能都到FASTIO里了。。。。。 只有FastIoQueryStandardInfo和FastIoQueryOpen |
|
地下室#
发布于:2004-01-14 16:05
呵呵呵呵哈!伙计,你跟晚了!
在Irp_mj_write完成后,紧跟着就是一个Irp_mj_read。预读数据。如果这个TXT文件不够大的话(预读就一下子全读出来了),以后的读取都由fast Io从Cache中读取。 :) |
|
5楼#
发布于:2004-01-16 09:41
呵呵呵呵哈!伙计,你跟晚了! 好像不是介个原因唉,我都收不fastioread&write |
|
6楼#
发布于:2007-08-20 17:07
这个问题放了几年了,现在我也遇到了,请具体点讲解一下呀,各们大侠。
|
|
7楼#
发布于:2007-08-21 10:58
问题不解决,我就不让它沉底!!!!!
|
|
8楼#
发布于:2007-08-22 10:53
没人回答。。。
|
|
9楼#
发布于:2007-08-23 14:51
还是没人回答
|
|
10楼#
发布于:2007-08-23 15:12
记事本比较神奇的,
打开一下记事本一次,会把以前打开过的 txt文件都读一下. |
|
11楼#
发布于:2007-08-23 16:08
是啊
|
|
12楼#
发布于:2007-08-24 22:13
不仅仅是记事本,关键是哪个Cache。他从Cache读,WORD也一样。
|
|
13楼#
发布于:2007-10-09 14:49
打开文件还有一个途径是读缓存,如果这个文件以前打开过了,再打开就可能不走文件驱动,
而只是从内存中读出,确定这个问题可以flush一下清空缓存,flush后应当就走文件驱动了, 另外读文件不一定走read,也可能走create |
|
14楼#
发布于:2007-10-09 15:28
引用第13楼icesword于2007-10-09 14:49发表的 : 读文件走Create?这个有些理解不了,能给解释一下吗? 读写数据不都要走RW? 或FastIo或IRP,怎么会在Create中做读写? |
|
15楼#
发布于:2007-10-10 00:00
关键是这个文件多大,小于4096的话,就可能了
|
|
16楼#
发布于:2007-10-10 09:18
楼上说的是NTFS里小于4K直接走$MFT的常驻属性?
|
|
17楼#
发布于:2007-10-11 16:42
要看你具体在什么样的文件系统上工作。
|
|
18楼#
发布于:2007-10-11 16:44
又见stevphen
|
|
|
19楼#
发布于:2007-10-11 17:46
引用第16楼clarence于2007-10-10 09:18发表的 : 是的 |
|
上一页
下一页