阅读:1792回复:2
sfilter中关于系统缓存的问题及其它两个问题
sfilter中关于系统缓存的问题:FastIoRead有效时,如果不打开文件(即对文件进行读取),则复制出去的文件为密文。复制、粘贴操作不是应该包含读操作的吗?怎么会没有在过滤驱动中解密呢?而当FastIoRead无效时(即该例程return FALSE),就都变成了明文,不管是在加载驱动前还是加载驱动后。这是否跟系统缓存有关?
顺便还有两个问题一起请教: 1、sfilter中删除GenericTable表中元素时的判断条件如下: if ((0 == FileCtxPtr->RefCount) && (!FileObject->SectionObjectPointer || (!FileObject->SectionObjectPointer->DataSectionObject && !FileObject->SectionObjectPointer->ImageSectionObject))) 前两个好理解,后面的两个是什么? 2、用了几个U盘之后发现,有的枚举成可移动磁盘,有的却枚举成本地磁盘,请问这是怎么回事?如果我要让自己做的U盘枚举成本地磁盘该怎么做?是在固件里作改动还是在驱动里? 谢谢! |
|
沙发#
发布于:2010-12-01 05:29
fastio不禁止时,如果有fastio的可能,是不通过irp请求的,所以会是密文。
第二个问题你看一下nt文件系统内幕,很容易明白,一两句说不清楚,你要知道它判断的字段是啥意思 u盘的类型是由它的firmware向上层报告时决定的,软件不能修改。u盘通常用的是标准的内置驱动。 |
|
|
板凳#
发布于:2010-12-01 17:03
谢谢老大的回答
那么,要禁止fastio是不是只需要在对应的fastio例程什么都不做,直接return FALSE;就可以了? |
|