hex.pp.ua

Структура INDEX_BLOCK_HEADER

Код AttributeIndexAllocation и структура INDEX_BLOCK_HEADER




Структура INDEX_BLOCK_HEADER это одна из дисковых структур NTFS. Её данные служат также для объяснения содержимого буфера FileRecordBuffer, возвращаемого при вызове NtFsControlFile с кодом FSCTL_GET_NTFS_FILE_RECORD.

Атрибут размещения индекса в памяти представляет собой массив индексных блоков. Каждый индексный блок начинается со структуры INDEX_BLOCK_HEADER, за которой следует несколько структур DIRECTORY_ENTRY.

Структура INDEX_BLOCK_HEADER

typedef struct {
  NTFS_RECORD_HEADER Ntfs;
  ULONGLONG IndexBlockVcn;
  DIRECTORY_INDEX DirectoryIndex;
} INDEX_BLOCK_HEADER, *PINDEX_BLOCK_HEADER;

Ntfs
Структура NTFS_RECORD_HEADER, параметр Type которой содержит значение 'INDX'

IndexBlockVcn
VCN индексного блока.

Directoryindex
Структура DIRECTORY_INDEX.

Структура DIRECTORY_INDEX

typedef struct {
  ULONG EntriesOffset;
  ULONG IndexBlockLength;
  ULONG AllocatedSize;
  ULONG Flags; // 0x00 = Маленький каталог, 0x01 = Большой каталог
} DIRECTORY_INDEX, *PDIRECTORY_INDEX;

EntriesOffset
Смещение в байтах от начала структуры до первой структуры DIRECTORY_ENTRY.

IndexBlockLength
Размер в байтах используемой части индексного блока.

AllocatedSize
Размер в байтах дискового пространства, выделенного для индексного блока.

Flags
Битовый массив флагов, определяющих свойства индекса. Определены следующие значения:


SmallDirectory      0x0000       Каталог находится в корне индекса
LargeDirectory      0x0001       Каталог выходит за пределы корня индекса

Структура DIRECTORY_ENTRY

typedef struct {
  ULONGLONG FileReferenceNumber;
  USHORT Length;
  USHORT AttributeLength;
  ULONG Flags; // 0x01 = После следует VCN, 0x02 = Последний элемент
  // FILENAME_ATTRIBUTE Name;
  // ULONGLONG Vcn; // VCN более ранних элементов в IndexAllocation
} DIRECTORY_ENTRY, *PDIRECTORY_ENTRY;

FileReferenceNumber
Номер ссылки на файл, описываемый элементом каталога.

Length
Размер в байтах элемента каталога.

AttributeLength
Размер в байтах индексируемого атрибута.

Flags
Битовый массив флагов, определяющих свойства элемента. Определены следующие значения:


* HasTrailingVcn 0x0001 // За индексированным атрибутом следует VCN
* LastEntry 0x0002 //   Последний элемент и индексном блоке

См. также

Список типов атрибутов дисковой структуры NTFS

По теме NTFS также есть следующее:

система комментирования CACKLE
Разделы сайта
Главная
Блог
Native API
NTFS и ReFS
Микроконтроллеры
Справочник NTDLL
Коды NTSTATUS
Разное

Избранное
NTFS Stream Explorer
Native Shell
Тенгвар

Остальное
nvpnhcknn (архив)
English pages
Контакты

Ленты atom
Лента Atom сайта Лента Atom блога



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