Windows 如何打开共享位置中的文件?
How does Windows open a file which is present in a shared location?
我不知道这个问题在这个论坛里是否有效,但无论如何,我就在这里问吧。共享网络驱动器中存在一些文件,如果我想打开它们,那么Windows如何打开文件?在本地打开文件需要哪些步骤?它会创建一个临时文件吗?我想知道 Windows 在这种情况下的内部工作。如果有任何阅读 material 分享会很有帮助。
Windows 当您访问 UNC 路径或映射的驱动器盘符上的文件时,不会创建本地临时文件。
假设我们正在谈论 SMB/CIFS 样式共享,当内核收到 UNC path/handle 时,请求将转发到 MUP(多个 UNC 提供程序),后者将其传递给正确的 MPR/redirector。然后请求通过网络发送到另一台机器。 SMB/CIFS 是目前最常用的协议,它是 documented here。此协议允许您执行类似于在本地卷上执行的功能,不同之处在于操作是在远程计算机上执行的。
shell/Explorer 还支持映射到网络位置的命名空间扩展(FTP、WebDAV、蓝牙等),但这些通常不会直接向应用程序公开文件。他们可能会将文件内容公开为 IStream
但大多数应用程序无法处理。在这些情况下,需要文件的本地副本。这些实现完全在用户模式下,与 Windows API.
中的低级文件功能不兼容
我不知道这个问题在这个论坛里是否有效,但无论如何,我就在这里问吧。共享网络驱动器中存在一些文件,如果我想打开它们,那么Windows如何打开文件?在本地打开文件需要哪些步骤?它会创建一个临时文件吗?我想知道 Windows 在这种情况下的内部工作。如果有任何阅读 material 分享会很有帮助。
Windows 当您访问 UNC 路径或映射的驱动器盘符上的文件时,不会创建本地临时文件。
假设我们正在谈论 SMB/CIFS 样式共享,当内核收到 UNC path/handle 时,请求将转发到 MUP(多个 UNC 提供程序),后者将其传递给正确的 MPR/redirector。然后请求通过网络发送到另一台机器。 SMB/CIFS 是目前最常用的协议,它是 documented here。此协议允许您执行类似于在本地卷上执行的功能,不同之处在于操作是在远程计算机上执行的。
shell/Explorer 还支持映射到网络位置的命名空间扩展(FTP、WebDAV、蓝牙等),但这些通常不会直接向应用程序公开文件。他们可能会将文件内容公开为 IStream
但大多数应用程序无法处理。在这些情况下,需要文件的本地副本。这些实现完全在用户模式下,与 Windows API.