Как srv.sys выбирает режим raw против ядра в зависимости от базовой файловой системы? - PullRequest
3 голосов
/ 30 июля 2009

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

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

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

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

KIV

Ответы [ 2 ]

1 голос
/ 02 сентября 2009

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

0 голосов
/ 19 августа 2009

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

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

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

...