阅读:1824回复:5
请教CcPinRead导致蓝屏
我在对一个目录下的文件进行重命名操作,文件系统中调用CcPinRead,出现这样现象,如果这个目录下的FileSize比较大,操作结果导致蓝屏,但如果FileSize比较小则操作没有问题,不过我最大是0x40000,也就是按这个和分段pin的,
看看传入的参数看不出问题,蓝屏错误提示是读错误 if (!CcPinRead(ParentFcb->FileObject, &FileOffset, DirentEnumSrc.ViewLength - DirentEnumSrc.ViewOffset, PIN_WAIT | PIN_EXCLUSIVE, &SrcBcb, &SrcBuffer)) { try_return(Status = STATUS_ACCESS_DENIED); } 我查了一天也没有看出为什么会蓝屏; 随能告诉我,你们碰到这个问题吗?是什么原因导致的?怎么来解决的? |
|
|
沙发#
发布于:2007-08-20 09:45
我实验了一下,先把offset设置成FileSize,即指定到文件尾巴上,再调用CcPinRead,能成功,再CcUnPinData后,再把offset设置到其他位置调用CcPinRead就不会蓝屏,能执行成功了。
为什么必须先做一次pin文件尾巴呢? 谁能解析一下。 |
|
|
板凳#
发布于:2007-08-18 13:33
用SofeICE的,dump文件用windbg看过的
|
|
|
地板#
发布于:2007-08-17 23:00
用windbg了吗?
|
|
地下室#
发布于:2007-08-16 10:50
如何才能保证CcPinRead成功啊,不成功至少也不能蓝屏啊
|
|
|
5楼#
发布于:2007-08-11 16:41
加FsRtlEnterFileSystem这个问题解决不彻底,还是会出错的
|
|
|