Структура ATTRIBUTE_LIST

Код 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 также есть следующее:


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