hex.pp.ua

NTFS: Reparse points. Точки повторной обработки

Описание точек повторной обработки NTFS (reparse points)




В файловой системе NTFS файл или каталог может содержать в себе reparse point, что переводится на русский язык как «точка повторной обработки». В файл или каталог добавляются специальные данные, файл перестаёт быть обычным файлом и обработать его может только та программа, которая знает как воспринимать такие данные. Есть возможность создавать reparse point своего собственного формата, но для их обработки придётся писать и устанавливать фильтр файловой системы. Существуют готовые типы reparse point, заданные Microsoft. Например, через точки повторной обработки в Windows реализуются символьные ссылки (symlink) и символьные связи (junction point).

У технологии reparse point есть следующие ограничения:

  • Данные reparse point могут быть присоединены к директории. Но каталог при этом обязан быть пустым, иначе reparse-данные невозможно присоединить. После присоединения становится невозможно создавать внутри файлы или папки, ведь до тех пор, пока к папке присоединены reparse-данные, каталог перестаёт быть каталогом и становится совершенно другой сущностью файловой системы.
  • Данные reparse point нельзя использовать одновременно с расширенными атрибутами. Невозможно сделать из файла точку повторной обработки, если он содержит расширенные атрибуты, и наоборот, невозможно задать у файла расширенные атрибуты, если он уже содержит данные reparse point.
  • И последнее ограничение касается размера reparse-данных. Общее количество reparse-данных у одного файла не может превышать 16 килобайт. Попытка задать файлу reparse-данные большего размера потерпит неудачу.

Наглядно увидеть технологию в работе легче всего, используя её для создания двух видов символьных ссылок в Windows. Первый вид ссылок называется junction point, он доступен для использования начиная с Windows 2000. Второй вид ссылок называется symlink, и появился он только в Windows Vista.

Есть небольшое затруднение с тем, как называть по-русски технологию junction point. Можно называть её символьной ссылкой, но начиная с Windows Vista имеется поддержка настоящих символьных ссылок (symlink). Утилита mklink из Windows 7 называет junction «соединением», а symlink – «символической ссылкой». Я называю junction points символьными связями, чтобы не путать с настоящими символьными ссылками.

Позже на сайте появятся страницы, описывающие поведение и программирование всех видов ссылок Windows, а также тексты о других возможностях файловой системы NTFS.

Типы точек повторной обработки

Тип данных Значение тега Назначение
IO_REPARSE_TAG_MOUNT_POINT 0xA0000003L Точки подключения дисковых томов и символьные связи каталогов. Технология доступна, начиная с Windows 2000.
IO_REPARSE_TAG_HSM 0xC0000004L Hierarchical Storage Management - технология хранения данных, автоматически распределяющая данные между дорогими и дешёвыми накопителями.
IO_REPARSE_TAG_HSM2 0x80000006L
IO_REPARSE_TAG_SIS 0x80000007L Single Instance Storage (SIS) - в Windows Storage Server 2008 R2 технология, увеличивающая размер дискового пространства за счёт размещения дублирующих файлов в общем хранилище.
IO_REPARSE_TAG_WIM 0x80000008L Метаданные формата образа диска Windows Imaging Format, используемого в последних релизах ОС Windows.
IO_REPARSE_TAG_CSV                        0x80000009L Cluster Shared Volumes – в Windows Server 2008 R2 технология, позволяющая иметь диск, доступный на чтение и запись всем нодам, входящим в кластер системы виртуализации Hyper-V.
IO_REPARSE_TAG_DFS                        0x8000000AL Distributed File System (DFS) — компонент Microsoft Windows, использующийся для упрощения доступа и управления файлами, физически распределёнными по сети.
IO_REPARSE_TAG_DFSR                       0x80000012L
IO_REPARSE_TAG_SYMLINK                    0xA000000CL Символьные ссылки. Технология доступна, начиная с Windows Vista.
IO_REPARSE_TAG_DRIVER_EXTENDER 0x80000005 Метаданные технологии Windows Home Server Drive Extender, используются для создания ссылок на файлы, продублированные на нескольких физических носителях.
IO_REPARSE_TAG_IIS_CACHE 0xA0000010L Точки повторной обработки, использующиеся в Internet Information Services(?)

По теме точек повторной обработки также есть следующее:

система комментирования CACKLE
Разделы сайта
Главная
Блог
Native API
NTFS и ReFS
Микроконтроллеры
Справочник NTDLL
Коды NTSTATUS
Разное

Избранное
NTFS Stream Explorer
Native Shell
Тенгвар

Остальное
nvpnhcknn (архив)
English pages
Контакты

Ленты atom
Лента Atom сайта Лента Atom блога



При копировании материалов хорошим тоном будет указание авторства и ссылка на сайт.