更改日记

自动备份应用程序是必须检查卷状态的更改以执行其任务的程序的一个示例。 检查目录或文件中更改的暴力破解方法是扫描整个卷。 但是,这通常是一种可接受的方法,因为它会导致的系统性能下降。 另一种方法是让应用程序注册目录通知(通过调用 FindFirstChangeNotificationReadDirectoryChangesW 函数)来备份目录。 这比第一种方法更有效,但是,它要求应用程序随时运行。 此外,如果必须备份大量目录和文件,则此类应用程序的处理和内存开销也可能导致作系统的性能降低。

为了避免这些缺点,NTFS 文件系统维护更新序列号(USN)更改日志。 对卷中的文件或目录进行任何更改时,该卷的 USN 更改日记会更新,其中包含更改说明和文件或目录的名称。

更改日志也需要恢复文件系统索引,例如计算机或卷故障后。 恢复索引的能力意味着文件系统可以避免在这种情况下重新编制整个卷索引的耗时过程。

以下主题讨论更改日记。

在本部分中

主题 描述
更改日记记录
当添加、删除和修改文件、目录和其他 NTFS 文件系统对象时,NTFS 文件系统在流中输入更改日记记录,为计算机上的每个卷输入一个。
使用更改日记标识符
NTFS 文件系统将未签名的 64 位标识符与每个更改日志相关联。
创建、修改和删除更改日记
管理员可以创建、删除和重新创建更改日志。
获取更改日志作的卷句柄
若要获取卷的句柄以用于更新序列号(USN)更改日志作,请调用 CreateFile 函数,并将 lpFileName 参数设置为以下形式的字符串:\\.\X
更改日志作
用于 NTFS 文件系统更新序列号(USN)更改日志的控制代码和结构。