阅读:2651回复:19
Lanman文件,缓存在哪边,如何得到NOCACHE的IO
A机通过 Lanman 访问远程B计算机的共享 文件夹,那么Cache在哪一边
我测试发现很乱,特别是从 A 机修改 B 机的文件,很多情况下在A机只能看到CACHE的Write,而看不到NOCACHE的Write,我用 FileSpy.exe 做的测试,并没有加载其他任何驱动程序。在B机可以看到对应的NOCACHE的Write,但 B 机不在我们的可控范围内啊 谢谢指导 |
|
|
沙发#
发布于:2007-05-29 22:03
这个,理论上不可能在A机有nocache写呀,因为文件也不写在A机.hehe
|
|
|
板凳#
发布于:2007-05-29 22:51
对于 B 机共享的 文件,
我在 A 机有时是可以得到Nocache Write 的,有时又得不到Nocache Write |
|
|
地板#
发布于:2007-05-30 01:52
Re:******** Lanman文件,缓存在哪边,如何得到NOCACHE的IO****
It's pretty common to see both Cached and Non-Cached IO for RDR. Even a Non-Cached IO for RDR maybe actually a Cached IO on server side. This is related to network FS caching mechanism. If a file is opened by A only, the cache can be located either on A or B. If a file is opened by A and C, most likely only B has cache. As I know there's no way to know where does cache located from FSFD layer. |
|
地下室#
发布于:2007-05-30 09:45
谢谢二位,那 有没有什么办法从 A 机强制得到在 B 机上的所有的A机产生的NOCACHE操作啊 ?
|
|
|
5楼#
发布于:2007-06-01 12:52
痛苦一顶
|
|
|
6楼#
发布于:2007-06-02 23:56
在本地文件系统上没有问题的事情,到了Lanman上所有的问题都来了,特别是缓存的问题,哪位能给些指导性的意见
|
|
|
7楼#
发布于:2007-06-03 00:16
Re:******** Lanman文件,缓存在哪边,如何得到NOCACHE的IO****
网络文件系统是走的CC-MDL 接口的。 |
|
|
8楼#
发布于:2007-06-03 17:25
Re:******** Lanman文件,缓存在哪边,如何得到NOCACHE的IO****
1. 得考虑权限问题;2. 客户机可以看到Irp->Flags=0x43的请求; |
|
|
9楼#
发布于:2007-06-03 20:14
0x43的请求在某些时候是不会出现的,我在继续研究
Lanman 上 Excel 反倒比 Word 复杂的多,缓存乱的一塌糊涂,唉 |
|
|
10楼#
发布于:2007-06-03 22:17
Excel是很怪的。跟一般软件都不一样。
|
|
11楼#
发布于:2007-06-04 09:47
引用第9楼looksail于2007-06-03 20:14发表的 : 你是不是过滤条件设置的有问题,而只看到问题的一面呢? Excel和Word差别个人认为倒不大 |
|
|
12楼#
发布于:2007-06-12 13:11
我只是把文件整个异或一下,放到B机只读共享
在A机如何测试都不行,所以我可以肯定有些IO直接通过网络走了 现在的问题是如何捕获到所有的 IO |
|
|
13楼#
发布于:2007-06-14 16:35
看来又是无解的问题,再顶一下,沉下去就算了
|
|
|
14楼#
发布于:2007-06-15 03:02
引用第12楼looksail于2007-06-12 13:11发表的 : All file IO must go through RDR unless you have your own SMB client. There's no hidden channel between two machines. For network shared file, since its cache can be located on either local machine or remote machine, your local FS filtering mechanism won't work for remote files. You can check CIFS or NFS documents on network file system caching mechanism. One possible solution may be that to have a driver installed on remote machine, monitor file cache and op locks. |
|
15楼#
发布于:2007-06-15 09:09
引用第14楼michaelgz于2007-06-15 03:02发表的 : 谢谢,有没有什么好办法把RDR的操作强制都在本地文件系统里面可控呢 |
|
|
16楼#
发布于:2007-06-15 09:34
引用第15楼looksail于2007-06-15 09:09发表的 : I don't think so. RDR is simply a client side component of a network file system. Remote file operation must be controled by server. |
|
17楼#
发布于:2007-06-15 10:47
引用第16楼michaelgz于2007-06-15 09:34发表的 : 非常感谢 ! 在文件驱动这块,你是国内少见的愿意说真话的人了,有机会一定请你吃饭 都不知道怎么办,只有想别的办法了 |
|
|
18楼#
发布于:2007-06-15 13:47
实际观测发现通过网络访问数据确实在客户端产生了大量cached io,特别是对可执行文件如dll, exe。所以若要加密可能不太好办.
|
|
19楼#
发布于:2007-06-17 01:58
可怜啊,人们都休息了,群里没人,坛里没人,窗外漆黑,咱这傻鸟还在这里,顶一下吧
|
|
|