备份组件文档生命周期

请求者对备份组件文档的生命周期负有主要责任。

此控件由 CreateVssBackupComponents 返回的 IVssBackupComponents 接口对象的实例执行。

在备份或还原之前,请求者必须通过调用 IVssBackupComponents::InitializeForBackup 或IVssBackupComponents::InitializeForRestore 来初始化备份组件文档。 请求者可以将文档初始化为空,也可以加载以前存储的文档副本。

对于备份操作,备份组件文档通常初始化为空。 在处理备份的过程中,系统编写者将合作填写其数据。

对于还原操作,备份组件文档通常是从初始备份期间生成的存储文档初始化的。 这使还原 (与检查存储的编写器元数据文档) 一起确定最初备份的数据以及应如何还原数据。

备份 可传输卷影副本 是此规则的例外。 在这种情况下,可以通过重新分配共享存储设备的逻辑单元,将卷影副本从一个系统 (以及初始备份组件文档) 移到另一个系统。 若要在这些情况下进行备份,请求者会加载存储的备份状态,并从初始系统中断的位置继续。 (有关详细信息,请参阅 导入可传输卷影复制卷。)

在处理备份的过程中,请求者根据哪些组件标记为 可选备份、组件的 逻辑路径及其自己的内部逻辑来确定要实际复制的组件。

某些组件将 显式包含在 备份操作中;有关组件的信息将添加到备份组件文档中。 其他将 隐式包含在 备份中;有关添加的组件的信息不会添加到备份组件文档。

将显式添加编写器的所有不可选择用于备份组件的逻辑路径中没有可选择的上级,以及请求者选择的备份组件的可选组件。

如果备份组件的逻辑路径中有一个可选择的上级(显式包含在备份中),则可以隐式添加备份组件不可选择和可选择的上级。 这些组件 (子组件) 是其可选上级定义的 组件集 的成员。

处理还原操作时,请求者使用 选择性进行还原 ,而不是将可选择性与逻辑路径信息及其自己的内部逻辑结合使用来决定要还原的文件。

如果已隐式添加到备份的组件现在要显式添加到还原中,则请求者将使用该组件的信息更新备份组件文档。

请求者和编写者都可以通过 IVssComponent 接口的实例获取有关存储组件的信息。

编写器可以通过 IVssComponent 接口查询和 (,直到 PostSnapshotPostRestore 事件结束,) 修改备份组件文档中的信息。

当调用 CVssWriter::OnPrepareBackupCVssWriter::OnPreRestoreCVssWriter::OnPostSnapshotCVssWriter::OnBackupCompleteCVssWriter::OnPostRestore 事件处理程序时,编写器将接收 IVssWriterComponents 接口的实例。

请注意,生成 BackupComplete 事件时,备份组件文档将设为只读,因此 CVssWriter::OnBackupComplete 无法使用 IVssComponent 接口对其进行修改。

IVSSWriterComponents 接口中,编写器可以检索 IVssComponent 接口的实例,该接口允许它访问显式添加到备份组件文档的所有组件并更改其状态。 有关详细信息,请参阅在 VSS 下处理备份的概述和在 VSS 下处理还原的概述

释放 IVssBackupComponents 接口时,备份组件文档将从内存中删除,必须使用 IVssBackupComponents::SaveAsXML 进行存储,否则其所有信息都将丢失。

此外,正确发布 IVssBackupComponents 文档时,将生成 BackupShutdown 事件并删除自动发布卷影副本