阅读:1928回复:3
求救文件缓冲问题????
在做一个文件加解密的项目,拿TXT文件做试验,遇到一些很奇怪的问题,想请教一下各位
我想拒绝“写字板”的读请求 于是我在收到它发出IRP_MJ_READ时,做了下面的操作: Irp->IoStatus.Status=STATUS_INVALID_DEVICE_REQUEST; Irp->IoStatus.Information=0; IoCompleteRequest(Irp,IO_NO_INCREMENT); return STATUS_INVALID_DEVICE_REQUEST; 可是,它还是能打开我的文件,虽然报有个出错提示 (拒绝其他程序如word的读请求就很成功的) 我刚开始怀疑是文件缓存的问题,于是在IRP_MJ_CREATE里加了个 CcIsFileCached的判断,但是发现从来没有判断成功过, 那是否说明没有文件被缓存?还是我判断的时机不对? 如果我的判断没错的话,那写字板到底是怎么读数据的了 太诡异了。。。 |
|
沙发#
发布于:2009-09-20 11:15
notepad 是MAP FILE的吧。
|
|
驱动小牛
|
板凳#
发布于:2009-09-21 12:38
FastIoRead和系统进程的所有MJ_READ都毙掉,不要去管什么FLAG,统统毙掉。
|
|
地板#
发布于:2010-03-22 14:54
记事本是采用的内存映射机制读写文件的,除非当中有分页请求发生否则驱动过滤是拦截不到记事本对内存的访问操作的
|
|