Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Структура блока управления файлами (FCB) указывается полем FsContext в объекте файла. Все операции, использующие один и тот же FCB, обращаются к одному и тому же файлу. К сожалению, серверы SMB реализуются сегодня таким образом, что имя может быть псевдонимом, чтобы два разных имени могли быть одинаковыми файлами. ФКБ является центральной точкой операций с файлами. Поскольку операции с тем же FCB фактически касаются одного и того же файла, синхронизация основана на FCB, а не на объекте более высокого уровня.
При создании структуры FCB также создается соответствующая SRV_OPEN и структура FOBX. Несколько структур SRV_OPEN могут быть связаны с данной структурой FCB, а несколько структур FOBX могут быть связаны с данной структурой SRV_OPEN. В большинстве случаев одна SRV_OPEN структура связана с ФКБ, а число структур FOBX, связанных с заданной структурой SRV_OPEN, равно 1. Для улучшения пространственной локальности и поведения разбиения по страницам в таких случаях выделение структуры FCB также включает выделение для одной связанной структуры SRV_OPEN и FOBX.
RDBSS пытается выделить связанные структуры FCB, SRV_OPEN и FOBX вместе в памяти, чтобы улучшить поведение разбиения на страницы. RDBSS не выделяет структуры FCB и NET_ROOT вместе, поскольку структуры NET_ROOT не выгружаются из памяти, а структуры FCB обычно выгружаются (если они не являются файлами подкачки).
Структура FCB соответствует каждому открытому файлу и каталогу. Структура FCB разделена на следующие две части:
Нестраничная часть, выделенная в нестраничном пуле
Часть с разбиением на страницы
Первый - это NON_PAGED_FCB, а последний называется FCB.
FCB содержит указатель на соответствующую NON_PAGED_FCB часть. Обратный указатель поддерживается из NON_PAGED_FCB в FCB для целей отладки в проверенных сборках.
NON_PAGED_FCB содержит структуру специальных указателей, которые используются менеджером памяти и менеджером кэша для манипулирования объектами секций. Обратите внимание, что значения для этих указателей обычно задаются за пределами файловой системы.
Структура FCB содержит следующее:
Структура FSRTL_COMMON_HEADER
Число подписей и ссылок
Имя и связанная информация о таблице
Обратная ссылка на связанную структуру NET_ROOT
Список связанных структур SRV_OPEN
Объект устройства
Любое дополнительное хранилище, запрошенное мини-перенаправлением сети или создателем структуры FCB