阅读:4313回复:7
请问怎样在filter中调用CcFlushCache,清空文件缓存在内存中的数据?
我写了一个针对记事本的文集加密程序,可是当记事本关了以后,内存中还存在明文,请问可以调用CcFlushCache清空缓存吗?
还有就是CcFlushCache的第一个参数PSECTION_OBJECT_POINTERS SectionObjectPointer应该怎样获得呀? 先谢了!! |
|
沙发#
发布于:2004-06-08 10:07
UP
|
|
板凳#
发布于:2004-06-11 14:42
FileObject中就包含SectionObjectPointer的指针。
CcFlushCache好象只是保证把高速缓存中的数据刷新到磁盘上,不保证清空高速缓存中的数据。 要清空高速缓存中的数据使用CcPurgeCacheSection。 [编辑 - 6/11/04 by luxs200] |
|
地板#
发布于:2004-06-13 07:55
我想清空NotePad存在缓存中的数据,就是每次打开一个文件都从硬盘里读,可是在IRP_MJ_CLOSE中调用了CcPurgeCacheSection以后。当第二次打开同一个文件时,NotePad还是从缓存里读数据,请问为什么?谢谢
|
|
地下室#
发布于:2004-08-06 01:35
i don't know how to clear data in cache.
but for confrimed read data, you can try to disable fastioread....,fastiomdlread... then irp_mj_read does happens. [编辑 - 8/6/04 by zdhe] |
|
5楼#
发布于:2004-08-11 09:54
to zdhe
Could you please tell me how to disable it in my filter driver, thanx a lot^_^ |
|
6楼#
发布于:2010-03-23 12:00
|
|
7楼#
发布于:2010-03-28 18:57
完全 清Cache后fastio 接口可以直接Return False;
若你的IRP_MJ_READ有Nocache判定处理的话 当然,网上通常说你有2次清 Cache的机会.Create,Cleanup 因为Stream file object是不会走Create的~ |
|