2017-01-12 7 views
0

Мы реализуем протокол SMB2. Чтобы показывать предыдущие версии файлов, клиент отправляет SMB2 IOCTL reqeust with CtlCode of FSCTL_SRV_ENUMERATE_SNAPSHOTS. Мы отправляем ответ, как описано в http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-SMB2%5D.pdf. 3.3.5.15.1 Обработка запроса на предыдущие версииПредыдущие версии файла не отображаются в SMB-клиенте

Когда я нажимаю «Свойства»> «Предыдущие версии каталога», он показывает предыдущие версии, но для файлов он не показывает что-нибудь. Я проверил, что мы возвращаем тот же ответ для файлов и каталогов.

Почему он не работает для файлов? Как файлы и каталоги отличаются от предыдущих версий? Какие еще запросы должны поддерживаться для просмотра предыдущих версий файла в клиенте Windows?

+0

При разработке сервера вы должны получать все запросы, которые отправляет клиент. Почему бы не регистрировать все запросы и не проверять их один за другим? –

ответ

1

Я обнюхал некоторые локальные сообщения при открытии свойств каталога/файла (вкладка предыдущей версии). Установлено, что клиент отправляет запросы CreateFile ([MS-SMB2], 2.2.13SMB2 CREATE Request) с SMB2_CREATE_TIMEWARP_TOKEN ([MS-SMB2], 2.2.13.2.7) в CreateContexts. Клиент получает список снимков, а затем циклические метки времени делают запрос Create с использованием метки времени в SMB2_CREATE_TIMEWARP_TOKEN.
Предположим, клиент пытается открыть файл из разных снимков и сравнить изменения, используя время изменения файла. Затем отобразите все разные версии.

+0

Требуется ли REPARSE_POINTS для поддержки предыдущих версий? – Ashot

+0

Если я пришлю вам файл захвата, вы можете сказать, какая часть не так? – Ashot

+0

@Ashot Я видел их в захваченных пакетах, но они завершили что-то вроде STATUS_NOT_A_REPARSE_POINT. Судя по определению «точка повторной обработки», «символическая ссылка», и кажется, что клиент проверяет, что каталог или файл не сидят в другом реальном месте. Я не знаю, требуется ли это, но вы можете отвечать на эти запросы как «не точка повторной обработки». Однако вам лучше реализовать весь персонал, который описывает данные вашего сервера, поскольку точка повторной обработки - это не только ссылка. Например, это может быть ключ шифрования. –

1

Это может быть либо конкретное поведение формы окна, либо ошибка на вашем сервере. Мы протестировали наш сервер хранения NQ, и он работал хорошо для файлов и папок, когда клиент был в 2012 году. Мы протестировали серверные другие окна, но в настоящее время я не могу вспомнить, какие из них. Честно говоря, мы не тестировали снимки со слишком большим количеством форм Win. Если вы возьмете захват, он может дать вам подсказку, какая сторона (C или S) виновата.

+0

Поддерживаете ли вы REPARSE_POINTS, требуется ли поддерживать предыдущие версии? – Ashot

+0

Если я пришлю вам файл захвата, вы можете сказать, какая часть не так? – Ashot

+0

По крайней мере, я попробую. вы можете найти меня на s k y p e как markrabinovich –

 Смежные вопросы

  • Нет связанных вопросов^_^