Код AttributeAttributeList и структура ATTRIBUTE_LIST
Структура ATTRIBUTE_LIST это одна из дисковых структур NTFS. Её данные служат также для объяснения содержимого буфера FileRecordBuffer, возвращаемого при вызове NtFsControlFile с кодом FSCTL_GET_NTFS_FILE_RECORD.
Атрибут из списка атрибутов всегда нерезидентен. Он состоит из массива структур ATTRIBUTE_LIST. Атрибут из списка атрибутов необходим только в том случае, когда атрибуты файла помещаются в одной записи MFT. Ниже приведены возможные причины переполнения элемента MFT:
- Файл обладает большим количеством альтернативных имен (жёстких связей);
- Значение атрибута достаточно большое, а том сильно фрагментирован;
- Файл обладает комплексным идентификатором доступа (в NTFS 3.0 отсутствует).
Определение структуры
typedef struct { ATTRIBUTE_TYPE AttributeType; USHORT Length; UCHAR NameLength; UCHAR NameOffset; ULONGLONG LowVcn; ULONGLONG FileReferenceNumber; USHORT AttributeNumber; USHORT AlignmentOrReserved[3]; } ATTRIBUTE_LIST, *PATTRIBUTE_LIST;
AttributeType
Тип атрибута.
Length
Размер в байтах элемента списка атрибутов.
NameLength
Размер в символах имени атрибута (если оно есть).
NameOffset
Смещение в байтах от начала структуры ATTRIBUTE_LIST до начала имени атрибута. Имя атрибута хранится в виде строки Unicode.
LowVcn
Самый нижний допустимый виртуальный номер кластера (VCN) этой части значения атрибута.
FileReferenceNumber
Номер ссылки на файл элемента MFT, содержащего структуру NONRESIDENT_ATTRIBUTE для этой части значения атрибута.
AttributeNumber
Числовой идентификатор для экземпляра атрибута.
См. также
Список типов атрибутов дисковой структуры NTFS
По теме NTFS также есть следующее:
- Специальные файлы NTFS. О файлах типа $Volume, $MFT и подобных.
- Обход ограничений FAT32/NTFS (статья 2004 года).
- Использование NtFsControlFile для получение информации о файле на NTFS
- Предварительный взгляд на возможности файловой системы Protogon.
Избранное
Остальное
По вопросам сотрудничества и другим вопросам по работе сайта пишите на cleogroup[собака]yandex.ru