(vsbackup.h) 的 IVssBackupComponents::Query 方法

Query 方法查询系统上的提供程序和/或系统中驻留在当前上下文中的已完成卷影副本。 只能在备份操作期间调用 方法。

语法

HRESULT Query(
  [in]  VSS_ID          QueriedObjectId,
  [in]  VSS_OBJECT_TYPE eQueriedObjectType,
  [in]  VSS_OBJECT_TYPE eReturnedObjectsType,
  [out] IVssEnumObject  **ppEnum
);

参数

[in] QueriedObjectId

保留。 此参数的值必须GUID_NULL。

[in] eQueriedObjectType

指示对给定对象类型的查询的限制。 值 VSS_OBJECT_NONE 表示没有限制,即将查询所有对象。

目前,此参数的值必须 VSS_OBJECT_NONE

[in] eReturnedObjectsType

要返回的对象类型。 此参数的值必须是 VSS_OBJECT_SNAPSHOTVSS_OBJECT_PROVIDER

[out] ppEnum

指向 IVssEnumObject 枚举器对象的双重间接指针。

返回值

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

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

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

VSS_E_UNEXPECTED_PROVIDER_ERROR
意外的提供程序错误。 错误代码记录在错误日志中。 有关详细信息,请参阅 VSS 下的事件和错误处理

注解

由于 Query 仅返回已完成卷影副本的信息,因此它可以公开的唯一卷影副本状态是VSS_SS_COMPLETED。

方法只能在备份操作期间调用,并且必须先调用 IVssBackupComponents::InitializeForBackupIVssBackupComponents::SetContext

虽然 Query 可以返回有关系统上所有可用提供程序的信息,但它将仅返回有关当前上下文 (由 IVssBackupComponents::SetContext) 设置的卷影副本的信息。 例如,如果 _VSS_SNAPSHOT_CONTEXT 上下文设置为 VSS_CTX_BACKUP则查询 不会返回有关使用 VSS_CTX_FILE_SHARE_BACKUP 上下文创建的卷影副本的信息。

虽然此方法当前返回所有可用提供程序和/或所有已完成卷影副本的列表,但将来可能支持专用查询:例如,查询与提供程序关联的所有卷影副本。

要求

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

另请参阅

IVssBackupComponents

IVssBackupComponents::InitializeForBackup

IVssBackupComponents::SetContext

IVssEnumObject