IVssBackupComponentsEx::SetSelectedForRestoreEx 方法 (vsbackup.h)

SetSelectedForRestoreEx 方法指示是否选择指定的可选组件以还原到指定的编写器实例。

语法

HRESULT SetSelectedForRestoreEx(
  [in] VSS_ID             writerId,
  [in] VSS_COMPONENT_TYPE ct,
  [in] LPCWSTR            wszLogicalPath,
  [in] LPCWSTR            wszComponentName,
  [in] bool               bSelectedForRestore,
  [in] VSS_ID             instanceId
);

参数

[in] writerId

编写器类的 GUID) (全局唯一标识符。

[in] ct

组件的类型。 有关可能的值,请参阅 VSS_COMPONENT_TYPE

[in] wszLogicalPath

包含组件的逻辑路径的以 Null 结尾的宽字符串。 有关详细信息,请参阅 组件的逻辑路径

包含此处使用的逻辑路径的字符串的值应与添加组件时使用的相同。

逻辑路径可以为 NULL

对于可以出现在非 NULL 逻辑路径中的字符没有限制。

[in] wszComponentName

包含组件名称的以 Null 结尾的宽字符串。

字符串不能为 NULL ,并且应包含与使用 IVssBackupComponents::AddComponent 方法将组件添加到备份集时使用的组件名称相同。

[in] bSelectedForRestore

如果此参数的值为 true,则表示已选择所选组件进行还原。 如果值为 false,则表示尚未选择所选组件进行还原。

[in] instanceId

编写器实例的 GUID。

此参数的默认值为 GUID_NULL。

返回值

下面是此方法的有效返回代码。

含义
S_OK
已成功指示已选择要还原的指定组件。
E_INVALIDARG
其中一个参数值无效。
E_OUTOFMEMORY
调用方内存或其他系统资源不足。
VSS_E_BAD_STATE
备份组件对象未初始化,在还原操作期间调用了此方法,或者未按正确的顺序调用此方法。
VSS_E_OBJECT_NOT_FOUND
正在选择的组件不存在于备份组件文档中,或者与该组件对应的编写器实时实例未在系统上运行。
VSS_E_INVALID_XML_DOCUMENT
XML 文档无效。 有关详细信息,请查看事件日志。 有关详细信息,请参阅 VSS 下的事件和错误处理
VSS_E_UNEXPECTED
意外错误。 错误代码记录在错误日志文件中。 有关详细信息,请参阅 VSS 下的事件和错误处理

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 在 Windows Server 2008 R2 和 Windows 7 之前不支持此值。 改用E_UNEXPECTED。

注解

SetSelectedForRestoreEx(将组件移动到另一编写器实例)只能对支持运行具有相同类 ID 的多个编写器实例并支持在还原时将组件移动到其他编写器实例的请求器实例的编写器调用。 若要确定编写器是否提供此支持,请调用 IVssExamineWriterMetadata::GetBackupSchema 方法。

SetSelectedForRestoreEx 仅对组件模式下发生的还原有意义。

只能对使用 AddComponent 在备份时显式添加到备份文档的组件调用 SetSelectedForRestoreEx。 必须通过在添加到文档的最接近的上级组件上调用 SetSelectedForRestoreEx 来还原已隐式选择作为组件集的一部分进行备份的组件。 如果只还原此组件的数据,则应通过 IVssBackupComponents::AddRestoreSubcomponent 方法完成;仅当组件可以选择还原时,才能执行此操作 (请参阅 使用选择性和逻辑路径) 。

必须在 IVssBackupComponents::P reRestore 方法之前调用此方法。

区分 instanceIdwriterID 参数是必要的,因为同一编写器的多个实例可能在计算机上运行。

如果 instanceId 参数的值为 GUID_NULL,则这等效于调用 IVssBackupComponents::SetSelectedForRestore 方法。

instanceId 参数用于指定要将组件还原到其他编写器实例。 如果 instanceId 参数的值未GUID_NULL,则必须将编写器实例的实例 ID 与 writerID 参数中指定的编写器类 ID 匹配。

可以通过调用 IVssExamineWriterMetadataEx::GetIdentityEx 方法找到编写器的类标识符、实例标识符和实例名称。

要求

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

另请参阅

IVssBackupComponents::SetSelectedForRestore

IVssBackupComponentsEx

IVssExamineWriterMetadata::GetBackupSchema

IVssExamineWriterMetadataEx::GetIdentityEx