Поделиться через


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

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

Синтаксис

typedef struct _FILE_ID_EXTD_BOTH_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;
  FILE_ID_128   FileId;
  CCHAR         ShortNameLength;
  WCHAR         ShortName[12];
  WCHAR         FileName[1];
} FILE_ID_EXTD_BOTH_DIR_INFORMATION, *PFILE_ID_EXTD_BOTH_DIR_INFORMATION;

Члены

NextEntryOffset

Смещение байтов следующей FILE_ID_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

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

ShortNameLength

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

ShortName[12]

Строка Юникода, содержащая короткое (8.3) имя файла.

FileName[1]

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

Замечания

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

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

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

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Обновление Windows 8.1
заголовка ntifs.h (include Ntifs.h, Fltkernel.h)

См. также

FsRtlNotifyFullChangeDirectory

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile