更改日记帐

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

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

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

以下主题讨论更改日志。

在本节中

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