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


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

Структура FILE_DIRECTORY_INFORMATION используется для запроса подробных сведений о файлах в каталоге.

Синтаксис

typedef struct _FILE_DIRECTORY_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;
  WCHAR         FileName[1];
} FILE_DIRECTORY_INFORMATION, *PFILE_DIRECTORY_INFORMATION;

Члены

NextEntryOffset

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

FileIndex

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

CreationTime

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

LastAccessTime

При последнем обращении к файлу.

LastWriteTime

Последняя запись сведений в файл.

ChangeTime

При последнем изменении файла.

EndOfFile

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

AllocationSize

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

FileAttributes

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

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

FileNameLength

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

FileName[1]

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

Замечания

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

  • Вызовите ZwQueryDirectoryFile, передав FileDirectoryInformation в качестве значения FileInformationClass и передавая выделенный вызывающим объектом буфер FILE_DIRECTORY_INFORMATION структурированный буфер в качестве значения FileInformation.
  • Создайте IRP с основным кодом функции IRP_MJ_DIRECTORY_CONTROL и дополнительным кодом функции IRP_MN_QUERY_DIRECTORY.

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

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

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

Требования

Требование Ценность
заголовка ntifs.h (include Ntifs.h, Fltkernel.h)

См. также

FsRtlNotifyFullChangeDirectory

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile