Шрифт:
Каждый атрибут имеет свой собственный идентификатор (attribute ID), уникальный для данной файловой записи и хранящийся в 16-разрядном поле, расположенном по смещению
0Eh
от начала атрибутного заголовка. Если атрибут имеет имя (attribute Name), то 16-разрядное поле, расположенное по смещению
0Ah
байт от атрибутного заголовка, содержит указатель на него. Для безымянных атрибутов оно равно нулю (большинство атрибутов имен не имеют). Имя атрибута хранится в атрибутном заголовке в формате UNICODE, а его длина определяется 8-разрядным полем, расположенным по смещению 09h
байт от начала атрибутного заголовка. Если тело атрибута сжато, зашифровано или разрежено, 16-разрядное поле флагов, расположенное по смещению
0Ch
байт от начала атрибутного заголовка, не равно нулю. Основные поля резидентных и нерезидентных атрибутов кратко описаны в табл. 6.4 и 6.5. Остальные поля не играют существенной роли, и потому здесь они не рассматриваются.
Таблица 6.4. Структура резидентного атрибута
Смещение | Размер (байт) | Значение | Описание |
---|---|---|---|
00h | 4 | Тип атрибута (например, 0x10 , 0x60 , 0xB0 ) | |
04h | 4 | Длина атрибута, включая этот заголовок | |
08h | 1 | 00h | Флаг нерезидентности (non-resident flag) |
09h | 1 | N | Длина имени атрибута (ноль, если атрибут безымянный) |
0Ah | 2 | 18h | Смещение имени (ноль, если атрибут безымянный) |
0Ch | 2 | 00h | Флаги |
Значение | Описание | ||
0001h | Сжатый атрибут (compressed) | ||
4000h | Зашифрованный атрибут (encrypted) | ||
8000h | Разреженный атрибут (sparse) | ||
0Eh | 2 | Идентификатор атрибута (attribute ID) | |
10h | 4 | L | Длина тела атрибута, без заголовка |
14h | 2 | 2N+18h | Смещение тела атрибута |
16h | 1 | Индексный флаг | |
17h | 1 | 00h | Используется для выравнивания |
18h | 2N | UNICODE | Имя атрибута (если есть) |
2N+18h | L | Тело атрибута |
Таблица 6.5. Структура нерезидентного атрибута
Смещение | Размер (байт) | Значение | Описание |
---|---|---|---|
00h | 4 | Тип атрибута (например, 0x20 , 0x80 ) | |
04h | 4 | Длина атрибута, включая этот заголовок | |
08h | 1 | 01h | Флаг нерезидентности (non-resident flag) |
09h | 1 | N | Длина имени атрибута (ноль, если атрибут безымянный) |
0Ah | 2 | 40h | Смещение имени (ноль, если атрибут безымянный) |
0Ch | 2 | Флаги | |
Значение | Описание | ||
0001h | Сжатый атрибут (compressed) | ||
4000h | Зашифрованный атрибут (encrypted) | ||
8000h | Разреженный атрибут (sparse) | ||
0Eh | 2 | Идентификатор атрибута (attribute ID) | |
10h | 8 | Начальный виртуальный кластер (starting VCN) | |
18h | 8 | Конечный виртуальный кластер (last VCN) | |
20h | 2 | 2N+40h | Смещение списка отрезков (data runs) |