windows-server-2008-r2 – LockFile成功但ReadFile失败

我知道这听起来像是一个编程问题,但事实并非如此.请跟我说:

我的客户遇到了一个我无法解释的奇怪问题:程序使用共享模式下打开的共享SMB驱动器(Windows 2008R2服务器)上的文件.

文件内部执行更新之前,程序将使用LockFile锁定特定的部分,读取数据,将所需的更改写入这些部分,然后解锁它们.

这样做是为了确保同一程序的多个实例可以覆盖彼此的更改.

在我的客户案例中,该程序(在所有其他位置表现良好多年)成功锁定文件,但在同一句柄上对ReadFile的后续调用失败,GetlastError返回错误64指定的网络名称不再可用

因此,我的问题:

Windows SMB客户端或服务器中是否存在可能导致此类问题的设置?

对我来说它看起来像一个乐观的锁,但Windows认情况下不执行乐观锁(它确实是opportunistic locks).

我的第一个怀疑是这个问题是由反病毒软件(卡巴斯基)造成的,但网站管理员发誓所有AV都在这个网络路径上排除了,无论是在客户端还是在文件服务器上.

客户端操作系统是Windows XP,7,2003和2008R2的混合(通过终端服务).它似乎只发生在重负荷的时候(每个人都进来的早晨,或者每个人都退出的时候).

好吧,答案比我想象的要简单得多:服务器NIC的故障设备驱动程序显然是导致所有这些问题的原因.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...