winnt.h) (FILE_NOTIFY_EXTENDED_INFORMATION 结构

介绍了 ReadDirectoryChangesExW 函数发现的更改。

语法

typedef struct _FILE_NOTIFY_EXTENDED_INFORMATION {
  DWORD         NextEntryOffset;
  DWORD         Action;
  LARGE_INTEGER CreationTime;
  LARGE_INTEGER LastModificationTime;
  LARGE_INTEGER LastChangeTime;
  LARGE_INTEGER LastAccessTime;
  LARGE_INTEGER AllocatedLength;
  LARGE_INTEGER FileSize;
  DWORD         FileAttributes;
  union {
    DWORD ReparsePointTag;
    DWORD EaSize;
  } DUMMYUNIONNAME;
  LARGE_INTEGER FileId;
  LARGE_INTEGER ParentFileId;
  DWORD         FileNameLength;
  WCHAR         FileName[1];
} FILE_NOTIFY_EXTENDED_INFORMATION, *PFILE_NOTIFY_EXTENDED_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

目录或文件的属性。

DUMMYUNIONNAME

DUMMYUNIONNAME.ReparsePointTag

DUMMYUNIONNAME.EaSize

FileId

目录或文件的标识符。

ParentFileId

文件的父目录的标识符。

FileNameLength

记录的文件名部分的大小(以字节为单位)。 此值不包括终止 null 字符。

FileName[1]

一个长度可变的字段,其中包含相对于目录句柄的文件名。 文件名采用 Unicode 字符格式,不以 null 结尾。

如果文件同时具有短名称和长名称,则函数将返回其中一个名称,但未指定哪个名称。

要求

要求
最低受支持的客户端 Windows 10版本 1709 [仅限桌面应用]
最低受支持的服务器 Windows Server 2016 [仅限桌面应用]
标头 winnt.h (包括 Windows.h)

另请参阅

ReadDirectoryChangesExW