Как Windows открывает файл, который находится в общей папке? - PullRequest
0 голосов
/ 21 марта 2019

Я не знаю, является ли это действительным вопросом на этом форуме, но в любом случае, я просто задам его здесь.Есть несколько файлов, которые присутствуют на общем сетевом диске, если я хочу открыть их, то как Windows открывает файл?Какие шаги нужно предпринять, чтобы открыть файл локально?Создает ли временный файл?Я хочу знать внутреннюю работу Windows в этих ситуациях.Было бы полезно, если бы был какой-либо материал для чтения.

1 Ответ

0 голосов
/ 21 марта 2019

Windows не создает локальный временный файл при доступе к файлам по пути UNC или по букве сопоставленного диска.

Предполагается, что речь идет об общих ресурсах в стиле SMB / CIFS, когда ядро ​​получает путь / дескриптор UNCзапрос перенаправляется в MUP (множественный UNC-провайдер), который передает его правильному MPR / перенаправителю.Затем запрос отправляется по сети на другой компьютер.SMB / CIFS является наиболее распространенным протоколом, используемым в наши дни, и он задокументирован здесь .Этот протокол позволяет выполнять функции, аналогичные тем, которые вы выполняете на локальном томе, за исключением операций, выполняемых на удаленном компьютере.

Оболочка / Проводник также поддерживает расширения пространства имен, которые сопоставляются с сетевыми местоположениями (FTP,WebDAV, Bluetooth и т. Д.), Но они обычно не предоставляют файлы напрямую приложениям.Они могут отображать содержимое файла как IStream, но большинство приложений не могут справиться с этим.В этих случаях требуется локальная копия файла.Эти реализации полностью в пользовательском режиме и не совместимы с низкоуровневыми файловыми функциями в Windows API.

...