对SMB(1.0)和映射I / O如何协同工作感到困惑

时间:2017-12-11 19:51:15

标签: memory-mapped-files smb internals

我正在尝试获取有关映射I / O和SMB(1)-Share的更详细信息。

我发现了一个场景,一个从网络共享开始的应用程序抛出一个页内错误(0xc0000006),状态码为0xc000020c(STATUS_CONNECTION_DISCONNECTED)。

奇怪的是,即使连接最终被破坏,它现在正在工作。

让它再次运行的唯一方法是关闭每个进程,即使用dll并清除备用列表。

似乎在通过SMB进行映射I / O时没有实现“重新连接”,或者我遇到了什么问题?

如果有人能指出一些关于这些事情如何深入工作的信息,那将会很好。

1 个答案:

答案 0 :(得分:1)

据我所知,SMBv1上没有“重新连接”。 如果要继续处理已打开的文件列表,重新连接后需要再次重新打开它们(在应用程序级别)。 可以重新建立连接,但服务器中的所有文件句柄都消失了。

重新连接功能从SMBv2开始实施。