структура FILE_ID_ALL_EXTD_DIR_INFORMATION (ntifs.h)

Структура FILE_ID_ALL_EXTD_DIR_INFORMATION используется для запроса 64-разрядных и 128-разрядных ссылочных номеров файлов в каталоге.

Синтаксис

typedef struct _FILE_ID_ALL_EXTD_DIR_INFORMATION {
  ULONG         NextEntryOffset;
  ULONG         FileIndex;
  LARGE_INTEGER CreationTime;
  LARGE_INTEGER LastAccessTime;
  LARGE_INTEGER LastWriteTime;
  LARGE_INTEGER ChangeTime;
  LARGE_INTEGER EndOfFile;
  LARGE_INTEGER AllocationSize;
  ULONG         FileAttributes;
  ULONG         FileNameLength;
  ULONG         EaSize;
  ULONG         ReparsePointTag;
  LARGE_INTEGER FileId;
  FILE_ID_128   FileId128;
  WCHAR         FileName[1];
} FILE_ID_ALL_EXTD_DIR_INFORMATION, *PFILE_ID_ALL_EXTD_DIR_INFORMATION;

Члены

NextEntryOffset

Байтовая смещение следующей записи FILE_ID_64_EXTD_BOTH_DIR_INFORMATION , если в буфере имеется несколько записей. Этот элемент равен нулю, если другие записи не соответствуют этому элементу.

FileIndex

Байтовая смещение файла в родительском каталоге. Этот член не определен для файловых систем, таких как NTFS, в которых положение файла в родительском каталоге не является фиксированным и может быть изменено в любое время для поддержания порядка сортировки.

CreationTime

Время создания файла.

LastAccessTime

Время последнего доступа к файлу.

LastWriteTime

Время последней записи сведений в файл.

ChangeTime

Время последнего изменения файла.

EndOfFile

Абсолютно новая позиция конца файла в виде смещения в байтах от начала файла. EndOfFile задает смещение байтов до конца файла. Так как это значение отсчитывается от нуля, оно фактически ссылается на первый свободный байт в файле. Другими словами, EndOfFile — это смещение до байта, следующего за последним допустимым байтом в файле.

AllocationSize

Размер выделения файла в байтах. Обычно это значение кратно размеру сектора или кластера базового физического устройства.

FileAttributes

Атрибуты файла, которые могут быть любым допустимым сочетанием следующих:

  • FILE_ATTRIBUTE_READONLY
  • FILE_ATTRIBUTE_HIDDEN
  • FILE_ATTRIBUTE_SYSTEM
  • FILE_ATTRIBUTE_DIRECTORY
  • FILE_ATTRIBUTE_ARCHIVE
  • FILE_ATTRIBUTE_NORMAL
  • FILE_ATTRIBUTE_TEMPORARY
  • FILE_ATTRIBUTE_COMPRESSED

FileNameLength

Указывает длину строки имени файла.

EaSize

Объединенная длина (в байтах) расширенных атрибутов (EA) для файла.

ReparsePointTag

Значение тега для точки повторного аналитики.

FileId

64-разрядный номер ссылки на файл. Это число создается и присваивается файлу файловой системой.

FileId128

128-разрядный номер ссылки на файл. Это число создается и присваивается файлу файловой системой.

FileName[1]

Задает первый символ строки имени файла. За этим в памяти следует остаток строки.

Комментарии

Эти сведения можно запросить с помощью следующих способов:

  • Вызовите ZwQueryDirectoryFile, передав FileIdAllExtdDirectoryInformation в качестве значения FileInformationClass и передавая выделенный вызывающим FILE_ID_ALL_EXTD_DIR_INFORMATION структурированный буфер в качестве значения FileInformation.

  • Создайте IRP с основным кодом функции IRP_MJ_DIRECTORY_CONTROL и дополнительным кодом функции IRP_MN_QUERY_DIRECTORY.

Для запроса этих сведений не требуется никаких конкретных прав доступа.

Номера ссылок на файлы, также называемые идентификаторами файлов, гарантированно будут уникальными только в пределах статической файловой системы. Они не гарантируют, что они будут уникальными с течением времени, так как файловые системы могут свободно использовать их повторно. Они также не гарантированы, чтобы оставаться постоянными. Например, файловая система FAT создает ссылочный номер файла на основе смещения байтов записи каталога файла (DIRENT) на диске. Дефрагментация может изменить это смещение байтов. Таким образом, ссылочный номер файла FAT может меняться со временем.

Все даты и время имеют абсолютный системный формат. Абсолютное системное время — это число 100-наносекундных интервалов с начала 1601 года.

Эта структура должна быть выровнена по границе LONGLONG (8 байт). Если буфер содержит две или более из этих структур, значение NextEntryOffset в каждой записи, кроме последней, попадает на 8-байтовую границу.

Требования

Требование Значение
Минимальная версия клиента Windows 11, версия 23H2
Верхняя часть ntifs.h

См. также раздел

FILE_INFORMATION_CLASS

FsRtlNotifyFullChangeDirectory

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile