Длина файловой записи хранится в двух полях. Тридцатидвухразрядное поле
18h
байт от начала сектора, содержит совокупный размер заголовка, всех его атрибутов и маркера конца, округленный по 8-байтной границе. Тридцатидвухразрядное поле 1Ch
байт от начала сектора, содержит действительный размер файловой записи в байтах, округленный по размеру сектора. Документация Linux-NTFS Project (версия 0.4) утверждает, что выделенный размер должен быть кратен размеру кластера, но на практике это не так. Например, на моей машине длина поля выделенного размера равна четверти кластера.16-разрядное поле флагов, находящееся по смещению 16h
00h
— данная файловая запись не используется или ассоциированный с ней файл или каталог удален, 01h
— файловая запись используется и описывает файл, 02h
— файловая запись используется и описывает каталог.64-разрядное поле, находящееся по смещению 20h
$ATTRIBUTE_LIST
). Список атрибутов представляет собой специальный атрибут, добавляемый к первой файловой записи и содержащий индексы расширенных записей. Формат списка атрибутов будет подробно описан далее в этой главе.Основные поля заголовка файловой записи описаны в табл. 6.3. Остальные поля заголовка файловой записи не столь важны, и поэтому здесь они не рассматриваются. При необходимости обращайтесь к документации "Linux-NTFS Project".
Смещение | Размер (байт) | ОС | Описание | |
---|---|---|---|---|
00h | 4 | Любая | Сигнатура FILE | |
04h | 2 | Любая | Смещение номера последовательности обновления (update sequence number) | |
06h | 2 | Любая | Размер (в словах) номера последовательности обновления и массива обновления (Update Sequence Number & Array), условно S | |
08h | 8 | Любая | Номер последовательности файла транзакций ($LogFile Sequence Number или LSN) | |
10h | 2 | Любая | Номер последовательности (sequence number) | |
12h | 2 | Любая | Счетчик жестких ссылок (hard link) | |
14h | 2 | Любая | Смещение первого атрибута | |
16h | 2 | Любая | Флаги | |
Значение | Описание | |||
0x00 | Файловая запись не используется | |||
0x01 | Файловая запись используется и описывает файл | |||
0x02 | Файловая запись используется и описывает каталог | |||
0x04 | За справками обращайтесь к Биллу Гейтсу — вероятно, только он это знает | |||
0x08 | За справками обращайтесь к Биллу Гейтсу — вероятно, только он это знает | |||
18h | 4 | Любая | Реальный размер (real size) файловой записи | |
1Ch | 4 | Любая | Выделенный размер (allocated size) файловой записи | |
20h | 8 | Любая | Ссылка (file reference) на базовую файловую запись (base FILE record) или ноль, если данная файловая запись является базовой | |
28h | 2 | Любая | Идентификатор следующего атрибута (next attribute ID) | |
2Ah | 2 | Windows XP | Используется для выравнивания | |
2Ch | 4 | Windows XP | Индекс данной файловой записи (number of this MFT record) | |
2 | Любая | Номер последовательности обновления (update sequence number) | ||
2S -2 | Любая | Массив последовательности обновления (update sequence array) |