Как srv.sys выбирает режим raw или core в зависимости от базовой файловой системы?

Мы разрабатываем файловую систему для Windows с использованием IFS Kit. Мы начали исследовать проблему с производительностью, из-за которой операции ввода-вывода нашей файловой системы были намного медленнее при совместном использовании по сети. Посмотрев на это с помощью FileMon и TCPView из Sysinternals, мы обнаружили, что если NTFS / FAT используется совместно, клиент SMB и Сервер передавал ввод-вывод блоками по 60 КБ, а при совместном использовании нашей файловой системы он использовал блоки 4 КБ.

Эти два размера блока соответствуют режимам SMB "core" и "raw" - это объясняется здесь от Microsoft.

Проблема в том, что мы не можем понять, что в нашей файловой системе заставляет общий сервер Windows (srv.sys) выбирать основной режим (4K) для нашей файловой системы и необработанный режим (60K) для NTFS и FAT.

Приветствуются даже намеки на то, что проверять.

KIV


person KIV    schedule 30.07.2009    source источник
comment
Это похоже на вопрос ServerFault   -  person Lazarus    schedule 30.07.2009
comment
Как возникает вопрос о неисправности сервера? Вы, наверное, неправильно это поняли, вопрос в том, как правильно реализовать файловую систему, чтобы Windows хорошо с ней играла.   -  person KIV    schedule 30.07.2009


Ответы (2)


Проблема была решена путем установки флага FO_CACHE_SUPPORTED в объекте файловой системы.

person KIV    schedule 02.09.2009

Со страницы поддержки:

Когда вы используете Windows NT Explorer для копирования файла с клиента на удаленный компьютер, данные обычно передаются в режиме Core блоками по 4 КБ.

Вы пробовали это из командной строки?

person MSN    schedule 19.08.2009