CVssWriter::OnPrepareBackup 方法 (vswriter.h)

OnPrepareBackup 方法由编写器在 PrepareForBackup 事件后调用。 此方法用于配置编写器的状态及其组件,以便为备份操作做准备。

OnPrepareBackup 是一种虚拟方法。 它由 CVssWriter 基类实现,但可由派生类重写。

语法

bool OnPrepareBackup(
  [in] IVssWriterComponents *pComponent
);

参数

[in] pComponent

指向包含编写器元数据文档内容的 IVssWriterComponents 对象的实例化的指针。 如果 CVssWriter::AreComponentsSelected 返回 false) ,则请求方不支持组件 (,则此参数的值可能为 NULL

返回值

由基类实现的 OnPrepareBackup 始终返回 true

此方法的任何其他实现都必须返回 true ,出现致命错误时除外。 如果发生严重错误,方法必须调用 CVssWriter::SetWriterFailure 方法,以在返回 false 之前提供失败说明。 如果发生非严重错误,该方法仍应调用 SetWriterFailure ,但返回 true。 如果错误是由暂时性问题引起的,则 方法应在对 SetWriterFailure 的调用中指定VSS_E_WRITERERROR_RETRYABLE。

在发生故障的所有情况下,方法都应将事件写入事件日志,以报告失败的确切原因。

注解

CVssWriter 基类对此方法的默认实现返回 true,而不执行任何其他操作。

OnPrepareBackup 为编写器提供了更精细地选择要备份的内容的机会。

处理 PrepareForBackup 事件是编写器在创建卷影副本之前访问备份组件文档中包含的元数据的最后机会。

因此, OnPrepareBackup 为编写器提供了使用 IVssComponent 接口 (对存储的组件信息进行任何最终添加或更新的机会) 。 具体而言,特定于编写器的元数据可由 IVssComponent::SetBackupMetadataIVssComponent::SetRestoreMetadata 更新。

此外,虽然处理 PrepareForSnapshot 事件在 VSS 备份操作的生命周期中提供了另一个机会, (执行耗时的操作(例如跨多个站点同步数据) ), 但 OnPrepareBackup 为编写器提供了异步启动此类操作的机会。 此类任务必须在 CVssWriter::OnPrepareSnapshot 返回之前完成。

编写器绝不应从此方法或任何其他 CVssWriter (Ex) ::OnXxx 回调方法引发异常。

请求者通过调用 IVssBackupComponents::P repareForBackup 来生成 PrepareForBackup 事件,从而触发对 OnPrepareBackup 的调用。

如果此方法调用 CVssWriterEx2::GetSessionIdCVssWriter::SetWriterFailureCVssWriterEx2::SetWriterFailureEx 方法 ,则必须在调用此方法的同一线程中执行此操作。 有关详细信息,请参阅 编写器事件处理

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 vswriter.h (包括 Vss.h、VsWriter.h)
Library VssApi.lib

另请参阅

CVssWriter

CVssWriter::OnPostSnapshot

CVssWriter::OnPreRestore

CVssWriter::SetWriterFailure

IVssWriterComponents