структура FILE_ID_BOTH_DIR_INFORMATION (ntifs.h)
Структура FILE_ID_BOTH_DIR_INFORMATION используется для запроса сведений о ссылочных номерах файлов в каталоге.
Синтаксис
typedef struct _FILE_ID_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;
CCHAR ShortNameLength;
WCHAR ShortName[12];
LARGE_INTEGER FileId;
WCHAR FileName[1];
} FILE_ID_BOTH_DIR_INFORMATION, *PFILE_ID_BOTH_DIR_INFORMATION;
Члены
NextEntryOffset
Байтовое смещение следующей записи FILE_ID_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) для файла в байтах.
ShortNameLength
Указывает длину строки короткого имени файла.
ShortName[12]
Строка Юникода, содержащая короткое (8.3) имя файла.
FileId
8-байтовый номер ссылки на файл. Этот номер создается и присваивается файлу файловой системой. (Обратите внимание, что FileId не совпадает с 16-байтным идентификатором объекта file, добавленным в NTFS для Microsoft Windows 2000.)
FileName[1]
Указывает первый символ строки имени файла. За этим в памяти следует остаток строки.
Комментарии
Эти сведения можно запросить с помощью любого из следующих способов:
Вызовите ZwQueryDirectoryFile, передав FileIdBothDirectoryInformation в качестве значения FileInformationClass и передав выделенный вызывающим FILE_ID_BOTH_DIR_INFORMATION структурированный буфер в качестве значения FileInformation.
Create IRP с основным кодом функции IRP_MJ_DIRECTORY_CONTROL и дополнительным кодом функции IRP_MN_QUERY_DIRECTORY.
Для запроса этих сведений не требуются определенные права доступа.
Номера ссылок на файлы, также называемые идентификаторами файлов, гарантированно будут уникальными только в пределах статической файловой системы. Со временем они не будут уникальными, так как файловые системы могут использовать их повторно. Они также не гарантированы, чтобы оставаться постоянными. Например, файловая система FAT создает номер ссылки на файл на основе смещения байтов записи каталога файла (DIRENT) на диске. Дефрагментация может изменить это смещение байтов. Таким образом, номер ссылки на файл FAT может меняться со временем.
Все даты и время находятся в абсолютном системном формате. Абсолютное системное время — это число 100-наносекундных интервалов с начала 1601 года.
Эта структура должна быть выровнена по границе LONGLONG (8 байт). Если буфер содержит две или более из этих структур, значение NextEntryOffset в каждой записи, за исключением последней, попадает на 8-байтовую границу.
Требования
Требование | Значение |
---|---|
Заголовок | ntifs.h (включая Ntifs.h, Fltkernel.h) |