структура 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) |