遇到这样一个问题,请各位帮忙解决当第一次打开一个文本文件(如abc.txt),首先进入IRP_MJ_READ,然后可以在完成例程里获得文件的buffer和bufferlength,此时的irp->flag是IRP_NOCACHE 。if(IrpSp->MajorFun...
全文
回复(7) 2004-04-15 15:20 来自版块 - 文件系统(过滤)驱动程序开发
表情
ildee如果文件被打开一次,就不会有irp_nocache,此时我怎么获得文件的buffer,还是必须用zwcreatefile直接打开文件然后读取内容呢??好像不用这样吧..(2004-04-19 10:09)
ildee我的意思是,是不是在挂接硬盘的时候设置那个标志??我不是用zwcreatefile直接打开文件的,而是根据不同的读文件的方式(如IRP_NOCACHE)或的文件的buffer(如MmGetSystemAddressForMdlSafe),(2004-04-19 10:07)
slwqw我是照着filemon改的,第一次打开文件时,在完成里程例判断IRP_NOCACHE,然后可以找到文件的buffer,第二次打开,文件的buffer在什么地方??根本就不会进到IRP_NOCACHE,会有这些标志 IRP_BUFFERED_IO ,IRP_DEALLOCATE...(2004-04-16 18:08)
ildee我是照着filemon改的,第一次打开文件时,在完成里程例判断IRP_NOCACHE,然后可以找到文件的buffer,第二次打开,文件的buffer在什么地方??根本就不会进到IRP_NOCACHE,会有这些标志 IRP_BUFFERED_IO ,IRP_DEALLOCATE...(2004-04-16 13:39)
slwqw我想在文件被打开前,预读一下内容,如果包含特定的内容,就返回错误,不允许被打开。如果第一次打开文件,可以通过上面代码获得文件buffer然后处理,但是一旦打开过一次后,我该怎么办呢??? 预读时,使用标志FILE_NO_INTERMEDIATE_BUFFERING打开文件...(2004-04-16 11:39)
ildee我想在文件被打开前,预读一下内容,如果包含特定的内容,就返回错误,不允许被打开。如果第一次打开文件,可以通过上面代码获得文件buffer然后处理,但是一旦打开过一次后,我该怎么办呢???(2004-04-16 09:48)
slwqw说说你到底想做什么?(2004-04-15 17:50)

返回顶部