FILE_NOTIFY_FULL_INFORMATION结构 (ntifs.h)
当 DIRECTORY_NOTIFY_INFORMATION_CLASS 为 DirectoryNotifyFullInformation 时,返回 FILE_NOTIFY_FULL_INFORMATION 结构,以响应具有 IRP_MN_NOTIFY_CHANGE_DIRECTORY 次要函数代码的 IRP_MJ_DIRECTORY_CONTROL 请求。
语法
typedef struct _FILE_NOTIFY_FULL_INFORMATION {
ULONG NextEntryOffset;
ULONG Action;
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastModificationTime;
LARGE_INTEGER LastChangeTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER AllocatedLength;
LARGE_INTEGER FileSize;
ULONG FileAttributes;
union {
ULONG ReparsePointTag;
ULONG EaSize;
} DUMMYUNIONNAME;
LARGE_INTEGER FileId;
LARGE_INTEGER ParentFileId;
USHORT FileNameLength;
UCHAR FileNameFlags;
UCHAR Reserved;
WCHAR FileName[1];
} FILE_NOTIFY_FULL_INFORMATION, *PFILE_NOTIFY_FULL_INFORMATION;
成员
NextEntryOffset
必须跳过的字节数才能进入下一条记录。 值为零表示这是最后一条记录。
Action
发生的更改类型。 此成员可以是以下值之一。
价值 | 意义 |
---|---|
FILE_ACTION_ADDED (0x00000001) | 文件已添加到目录。 |
FILE_ACTION_REMOVED(0x00000002) | 从目录中删除了一个文件。 |
FILE_ACTION_MODIFIED(0x00000003) | 目录已修改。 这可以是时间戳或属性的更改。 |
FILE_ACTION_RENAMED_OLD_NAME(0x00000004) | 目录已重命名,这是旧名称。 |
FILE_ACTION_RENAMED_NEW_NAME(0x00000005) | 目录已重命名,这是新名称。 |
CreationTime
创建目录或文件的日期和时间,并将其添加到文件系统。
LastModificationTime
上次在文件系统中修改目录或文件内容的日期和时间。
LastChangeTime
上次在文件系统中更改目录或文件的元数据或内容的日期和时间。
LastAccessTime
上次在文件系统中访问目录或文件的日期和时间。
AllocatedLength
文件的分配大小(以字节为单位)。
FileSize
目录或文件的新大小(以字节为单位)或旧大小(如果大小不变)。
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
DUMMYUNIONNAME
DUMMYUNIONNAME.ReparsePointTag
目录或文件的重新分析点的标识符标记。
DUMMYUNIONNAME.EaSize
文件的扩展属性 (EA) 的组合长度(以字节为单位)。
FileId
目录或文件的标识符。 此数字由文件系统生成并分配给文件。
ParentFileId
文件的父目录的标识符。
FileNameLength
记录的文件名部分的大小(以字节为单位)。 此值不包括终止 null 字符。
FileNameFlags
指定返回的文件名类型的标志(如果已知)。 如果未设置以下两个标志,则文件名的类型未知。 如果设置了以下两个标志,则文件名既充当长名称又充当长名称对的短名称(NTFS 名称和 DOS 名称)。
旗 | 价值 |
---|---|
FILE_NAME_NTFS(0x01) | 文件名是长/短名称对的长名称(NTFS 名称)。 |
FILE_NAME_DOS(0x02) | 文件名是长/短名称对的短名称(DOS 名称)。 |
Reserved
保留供系统使用。
FileName[1]
包含相对于目录句柄的文件名的可变长度字段。 文件名采用 Unicode 字符格式,不以 null 结尾。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 11 版本 22H2 |
标头 | ntifs.h |