Атрибут стандартной информации описывает время создания/изменения/последнего доступа к файлу и права доступа, а также некоторую другую вспомогательную информацию (например, квоты). Структура атрибута стандартной информации кратко описана в табл. 6.7.
Таблица 6.7. Структура атрибута
<i>$STANDARD_INFORMATION</i>
Смещение | Размер | ОС | Описание |
- - | | Любая | Стандартный атрибутный заголовок (standard attribute header) |
00h
| 8 | Любая | C — время создания (creation) файла |
08h
| 8 | Любая | A — время изменения (altered) файла |
10h
| 8 | Любая | M — время изменения файловой записи (MFT changed) |
18h
| 8 | Любая | R — время последнего чтения (read) файла |
20h
| 4 | Любая | Права доступа MS-DOS (MS-DOS file permissions) |
Значение | Описание |
0001h
| Только на чтение (read-only) |
0002h
| Скрытый (hidden) |
0004h
| Системный (system) |
0020h
| Архивный (archive) |
0040h
| Устройство (device) |
0080h
| Обычный (normal) |
0100h
| Временный (temporary) |
0200h
| Разреженный (sparse) файл |
0400h
| Точка передачи (reparse point) |
0800h
| Сжатый (compressed) |
1000h
| Оффлайновый (offline) |
2000h
| Неиндексируемый (not content indexed) |
4000h
| Зашифрованный (encrypted) |
24h
| 4 | Любая | Старшее двойное слово номера версии (maximum number of versions) |
28h
| 4 | Любая | Младшее двойное слово номера версии (version number) |
2Ch
| 4 | Любая | Идентификатор класса (class ID) |
30h
| 4 | Windows 2000 | Идентификатор владельца (owner ID) |
34h
| 4 | Windows 2000 | Идентификатор безопасности (security ID) |
38h
| 8 | Windows 2000 | Количество квотируемых байт (quota charged) |
40h
| 8 | Windows 2000 | Номер последней последовательности обновления (update sequence number USN) |
Атрибут списка атрибутов (прямо каламбур) используется в тех случаях, когда все атрибуты файла не умещаются в базовой файловой записи, и файловая система вынуждена располагать их в расширенных файловых записях. Индексы расширенных файловых записей содержатся в атрибуте списка атрибутов, помещаемом в базовую файловую запись.
При каких обстоятельствах атрибуты не умещаются в одной файловой записи? Это может произойти в следующих случаях:
□ файл содержит много альтернативных имен или жестких ссылок;
□ файл сильно фрагментирован;
□ файл содержит очень сложный дескриптор безопасности;
□ файл имеет очень много потоков данных (т.е. атрибутов типа
$DATA
).
Структура атрибута списка атрибутов приведена в табл. 6.8.
Таблица 6.8. Структура атрибута
<i>$ATTRIBUTE_LIST</i>
Смещение | Размер | Описание |
- - | | Стандартный атрибутный заголовок (standard attribute header) |
00h
| 4 | Тип (type) атрибута (см. табл. 6.6) |
04h
| 2 | Длина записи (record length) |
06h
| 1 | Длина имени (name length), или ноль, если нет, условно — N
|
07h
| 1 | Смещение имени (offset to name), или ноль если нет |
08h
| 8 | Начальный виртуальный кластер (starting VCN) |
10h
| 8 | Ссылка на базовую/расширенную файловую запись |
18h
| 2 | Идентификатор атрибута (attribute ID) |
1Ah
| 2 N
| Если N>0 , то имя в формате UNICODE |