阅读:1801回复:2
读取文件头导致共享文件夹访问变慢(FILE_COMPLETE_IF_OPLOCKED )
请问有人遇到
“在别人访问我的共享文件夹时,我们在IRP_MJ_CREATE中读文件头,如果IRP_MJ_CREATE的标志为FILE_COMPLETE_IF_OPLOCKED ,就有可能会构成OPLOCK锁锁定,导致访问变的很慢”的问题吗? 在OSRONLINE上,找到引发这个问题的原因,但却没有找到合适的解决方法。 请问,有什么好的解决方法吗? |
|
|
沙发#
发布于:2008-04-30 16:56
在WIN2K的源代码内找到了OPLOCK的切换的代码,但看起来很吃力。
|
|
|
板凳#
发布于:2008-04-30 17:04
一个可能的解决方法是,在文件打开后,使用FileObject来读文件头,但这样做,如果这次打开是没有读权限的打开,就会导致读取文件头失败。使用FileObject判断出是密文后,如果需要拒绝,只能采用IoCancelFileOpen拒绝文件打开。但IoCancelFileOpen又会引发其他问题,至少使用了这个函数和其他公司的过滤驱动配合起来就有一些隐含的问题。
|
|
|