FILE_BOTH_DIR_INFORMATION结构 (ntifs.h)
FILE_BOTH_DIR_INFORMATION 结构用于查询目录中文件的详细信息。
语法
typedef struct _FILE_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];
WCHAR FileName[1];
} FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION;
成员
NextEntryOffset
如果缓冲区中存在多个条目,则下一个FILE_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_DEVICE
- FILE_ATTRIBUTE_NORMAL
- FILE_ATTRIBUTE_TEMPORARY
- FILE_ATTRIBUTE_SPARSE_FILE
- FILE_ATTRIBUTE_REPARSE_POINT
- FILE_ATTRIBUTE_COMPRESSED
- FILE_ATTRIBUTE_OFFLINE
- FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
- FILE_ATTRIBUTE_ENCRYPTED
FileNameLength
指定文件名字符串的长度(以字节为单位)。
EaSize
文件的扩展属性(EA)的组合长度(以字节为单位)。
ShortNameLength
指定短文件名字符串的长度(以字节为单位)。
ShortName[12]
包含文件的短 (8.3) 名称的 Unicode 字符串。
FileName[1]
指定文件名字符串的第一个字符。 紧跟在内存中的字符串的其余部分。
言论
可通过以下任一方式查询此信息:
调用 ZwQueryDirectoryFile,将 FileBothDirectoryInformation 作为 FileInformationClass 的值传递,并将调用方分配的FILE_BOTH_DIR_INFORMATION结构化缓冲区作为 FileInformation的值传递。
使用主要函数代码IRP_MJ_DIRECTORY_CONTROL和次要函数代码IRP_MN_QUERY_DIRECTORY创建 IRP。
查询此信息不需要特定的访问权限。
所有日期和时间都采用绝对系统时间格式。 绝对系统时间是自 1601 年初以来的 100 纳秒间隔数。
此结构必须在 LONGLONG(8 字节)边界上对齐。 如果缓冲区包含两个或多个这些结构,则每个条目中的 NextEntryOffset 值(最后一个除外)位于 8 字节边界上。
要求
要求 | 价值 |
---|---|
标头 | ntifs.h(包括 Ntifs.h、Fltkernel.h) |