IVssBackupComponents::GetWriterComponents 方法 (vsbackup.h)

GetWriterComponents 方法用于返回有关已存储在请求者的备份组件文档中的给定编写器组件的信息。

语法

HRESULT GetWriterComponents(
  [in]  UINT                    iWriter,
  [out] IVssWriterComponentsExt **ppWriter
);

参数

[in] iWriter

正在查询的编写器的索引。 它是一个介于 0 和 n-1 之间的数字,其中 nIVssBackupComponents::GetWriterComponentsCount 返回的值。

[out] ppWriter

指向将接收返回的组件信息的 IVssWriterComponentsExt 接口对象的双重间接指针。

返回值

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

含义
S_OK
已成功返回指向 IVssWriterComponentsExt 接口对象的指针。
E_INVALIDARG
其中一个参数值无效。
E_OUTOFMEMORY
调用方内存或其他系统资源不足。
VSS_E_BAD_STATE
备份组件对象未初始化,在还原操作期间调用了此方法,或者未按正确的顺序调用此方法。
VSS_E_OBJECT_NOT_FOUND
指定的卷影副本不存在。
VSS_E_UNEXPECTED
意外错误。 错误代码记录在错误日志文件中。 有关详细信息,请参阅 VSS 下的事件和错误处理

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

注解

此方法的调用方在完成访问组件信息后必须调用 IUnknown::Release

GetWriterComponents 通过先前调用 IVssBackupComponents::AddComponent 检索存储在备份组件文档中的组件的组件信息。

备份组件文档中存储的组件中的信息不是静态的。 如果编写器在还原期间更新组件,该更改将反映在 GetWriterComponents 检索到的组件中。 这与 IVssExamineWriterMetadata::GetComponent 返回的 IVssWMComponent 对象中的组件信息形成鲜明对比。 该信息是只读的,来自编写器进程的编写器元数据文档。

不应缓存 pWriterComponents 参数中返回的 IVssWriterComponentsExt 接口指针,因为以下 IVssBackupComponents 方法会导致 GetWriterComponents 返回的接口指针不再有效:

IVssBackupComponents::P repareForBackupIVssBackupComponents::D oSnapshotSetIVssBackupComponents::BackupCompleteIVssBackupComponents::P reRestoreIVssBackupComponents::P ostRestore 如果在通过调用 GetWriterComponents 检索 IVssWriterComponentsExt 接口指针后调用这些方法之一,则不能重用该指针, 因为它不再有效。 相反,必须再次调用 GetWriterComponents 以检索新的 IVssWriterComponentsExt 接口指针。

要求

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

另请参阅

IVssBackupComponents

IVssBackupComponents::AddComponent

IVssBackupComponents::GatherWriterMetadata

IVssBackupComponents::GetWriterComponentsCount

IVssBackupComponents::GetWriterMetadata

IVssBackupComponents::P reRestore

IVssExamineWriterMetadata

IVssExamineWriterMetadata::GetComponent

IVssWriterComponents

IVssWriterComponentsExt