USN_JOURNAL_DATA_V2 结构 (winioctl.h)

表示更新序列号 (USN) 变更日志、其记录以及其容量。 此结构是 FSCTL_QUERY_USN_JOURNAL 控制代码的输出缓冲区。

语法

typedef struct {
  DWORDLONG UsnJournalID;
  USN       FirstUsn;
  USN       NextUsn;
  USN       LowestValidUsn;
  USN       MaxUsn;
  DWORDLONG MaximumSize;
  DWORDLONG AllocationDelta;
  WORD      MinSupportedMajorVersion;
  WORD      MaxSupportedMajorVersion;
  DWORD     Flags;
  DWORDLONG RangeTrackChunkSize;
  LONGLONG  RangeTrackFileSizeThreshold;
} USN_JOURNAL_DATA_V2, *PUSN_JOURNAL_DATA_V2;

成员

UsnJournalID

当前日记标识符。 日志在创建时分配有一个新标识符,并在日志存在过程中可以使用新标识符进行标记。 NTFS 文件系统将此标识符用于完整性检查。

FirstUsn

可从日记中读取的第一条记录的数目。

NextUsn

要写入日记的下一条记录的数目。

LowestValidUsn

写入此日记实例的日记中的第一条记录。 枚举卷上的文件或目录可能会返回低于此值的 USN, (换言之, firstUsn 成员值小于 LowestValidUsn 成员值) 。 如果是这样,则日记中已加盖了自上次编写 USN 以来的新标识符。 在这种情况下, LowestValidUsn 可能指示日志中的不连续,其中卷上的部分或所有文件或目录的更改可能未记录在更改日志中。

MaxUsn

更改日志支持的最大 USN。 当 NextUsn 的值接近此值时,管理员必须删除更改日志。

MaximumSize

更改日志的目标最大大小(以字节为单位)。 更改日志可以增大到大于此值,但随后在下一个 NTFS 文件系统检查点处被截断为小于此值。

AllocationDelta

每次分配或解除分配内存时,添加到末尾并从更改日志开头删除的磁盘内存字节数。 换句话说,分配和解除分配以此大小的单位进行。 群集大小的整数倍数是此成员的合理值。

MinSupportedMajorVersion

文件系统支持的 USN 更改日志的最低版本。

MaxSupportedMajorVersion

文件系统支持的 USN 更改日志的最高版本。

Flags

是否打开范围跟踪。 以下是 Flags 成员的可能值。

含义
0x00000000
未为卷启用范围跟踪。
FLAG_USN_TRACK_MODIFIED_RANGES_ENABLE
0x00000001
已为卷启用范围跟踪。

RangeTrackChunkSize

跟踪范围的粒度。 仅当同时将 Flags 成员设置为 FLAG_USN_TRACK_MODIFIED_RANGES_ENABLE 时有效。

RangeTrackFileSizeThreshold

文件大小阈值,用于开始跟踪大小相等或更大的文件的范围。 仅当同时将 Flags 成员设置为 FLAG_USN_TRACK_MODIFIED_RANGES_ENABLE 时有效。

要求

要求
最低受支持的客户端 Windows 8.1 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 R2 [仅限桌面应用]
标头 winioctl.h (包括 Windows.h)

另请参阅

FSCTL_QUERY_USN_JOURNAL

USN_JOURNAL_DATA_V0

USN_JOURNAL_DATA_V1

卷管理结构