Структура FILENAME_ATTRIBUTE

Код AttributeFileName и структура FILENAME_ATTRIBUTE




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

Атрибут имени файла всегда резидентен.

Определение структуры

typedef struct {
  ULONGLONG DirectoryFileReferenceNumber;
  ULONGLONG CreationTime; // Время изменения имени файла
  ULONGLONG ChangeTime;
  ULONGLONG LastWriteTime; 
  ULONGLONG LastAccessTime; 
  ULONGLONG AllocatedSize; 
  ULONGLONG DataSize; 
  ULONG FileAttributes;
  ULONG AlignmentOrReserved;
  UCHAR NameLength;
  UCHAR NameType; // 0x01 = длинное, 0x02 = короткое
  WCHAR Name[1];
} FILENAME_ATTRIBUTE, *PFILENAME_ATTRIBUTE;

DirectoryFileReferenceNumber
Номер ссылки на файл каталога, в котором находится имя файла.

CreationTime
Время создания файла в стандартном формате времени (то есть количество интервалов по 100 наносекунд, начиная с 1 января 1601 года). Этот элемент модифицируется только при изменении имени файла. Он может отличаться от одноименного поля в структуре STANDARD_INFORMATION.

ChangeTime
Время последнего изменения атрибутов файла в стандартном формате времени (то есть количество интервалов по 100 наносекунд, начиная с 1 января 1601 года). Этот элемент модифицируется только при изменении имени файла. Он может отличаться от одноимённого поля в структуре STANDARD_INFORMATION.

LastWriteTime
Время последней записи в файл в стандартном формате времени (то есть количество интервалов по 100 наносекунд, начиная с 1 января 1601 года). Этот элемент модифицируется только при изменении имени файла. Он может отличаться от одноимённого поля в структуре STANDARD_INFORMATION.

LastAccessTime
Время последнего обращения к файлу в стандартном формате времени (то есть количество интервалов по 100 наносекунд, начиная с 1 января 1601 года). Этот элемент модифицируется только при изменении имени файла. Он может отличаться от одноимённого поля в структуре STANDARD_INFORMATION.

AllocatedSize
Размер в байтах дискового пространства, выделенного для содержания значении атрибута. Этот элемент модифицируется только при изменении имени файла.

DataSize
Размер в байтах значения атрибута. Этот элемент модифицируется только при изменении имени файла.

FileAttributes
Атрибуты файла. Этот элемент модифицируется только при изменении имени файла. Он может отличаться от одноимённого поля в структуре STANDARD_INFORMATION.

NameLength
Размер имени файла в символах.

NameType
Тип имени. Нулевое значение типа указывает на обычное имя файла. Тип, равный единице, означает длинное имя, соответствующее короткому имени файла, а тип два короткое имя, соответствующее длинному.

Name
Имя файла в Unicode.

См. также

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

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


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