IVssBackupComponents::GetWriterStatus 方法 (vsbackup.h)
GetWriterStatus 方法返回指定编写器的状态。
语法
HRESULT GetWriterStatus(
[in] UINT iWriter,
[out] VSS_ID *pidInstance,
[out] VSS_ID *pidWriter,
[out] BSTR *pbstrWriter,
[out] VSS_WRITER_STATE *pnStatus,
[out] HRESULT *phResultFailure
);
参数
[in] iWriter
要检索其元数据的编写器的索引。 此参数的值是一个介于 0 到 n–1(含 0 到 n-1)的整数,其中 n 是当前系统上写入器的总数。 n 的值由 IVssBackupComponents::GetWriterStatusCount 返回。
[out] pidInstance
调用方分配的变量的地址,该变量接收编写器的实例标识符。
[out] pidWriter
调用方分配的变量的地址,该变量接收编写器类的标识符。
[out] pbstrWriter
调用方分配的变量的地址,该变量接收包含指定编写器的名称的字符串。
[out] pnStatus
调用方分配的变量的地址,该变量接收 VSS_WRITER_STATE 枚举值。
[out] phResultFailure
调用方分配的变量的地址,该变量接收编写器返回的 HRESULT 失败代码。
以下是 pHrResultFailure 支持的值。
值 | 含义 |
---|---|
|
编写器成功。 |
|
卷影副本仅包含编写器正确备份应用程序组件所需的卷子集。 |
|
编写器耗尽了内存或其他系统资源。 处理此错误代码的建议方法是等待十分钟,然后重复该操作,最多三次。 |
|
由于冻结和解冻事件之间超时,编写器操作失败。 处理此错误代码的建议方法是等待十分钟,然后重复该操作,最多三次。 |
|
编写器失败,因为如果重新启动整个备份、还原或卷影副本创建过程,则可能不会发生错误。 处理此错误代码的建议方法是等待十分钟,然后重复该操作,最多三次。 |
|
编写器操作失败,因为如果创建了另一个卷影副本,可能会重复出现错误。 有关详细信息,请参阅 VSS 下的事件和错误处理。 |
|
编写器没有响应。 |
|
编写器状态不适用于一个或多个编写器。 编写器可能已达到可用备份和还原会话的最大数目。
Windows Vista、Windows Server 2003 和 Windows XP: 不支持此值。 |
返回值
下面是此方法的有效返回代码。
值 | 含义 |
---|---|
|
已成功返回指定编写器的状态。 请注意,必须检查 pHrWriterFailure 参数的值,以验证编写器是否成功。 编写器失败代码可以包含在 VsWriter.h 和 编写器错误和否决中列出的代码中。 |
|
其中一个参数值无效。 |
|
调用方内存或其他系统资源不足。 |
|
备份组件对象未初始化,在还原操作期间调用了此方法,或者未按正确的顺序调用此方法。 |
|
指定的编写器不存在。 |
|
意外错误。 错误代码记录在错误日志文件中。 有关详细信息,请参阅 VSS 下的事件和错误处理。
Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 在 Windows Server 2008 R2 和 Windows 7 之前不支持此值。 改用E_UNEXPECTED。 |
注解
请求者必须调用异步操作 IVssBackupComponents::GatherWriterStatus ,并在调用 GetWriterStatus 之前等待该操作完成。
调用方完成访问此方法返回的状态信息后,应调用 SysFreeString 以释放 pbstrWriter 参数保留的内存。
pHrResultFailure 参数中返回的VSS_E_WRITERERROR_XXX 值由编写器生成。 VSS_E_WRITER_NOT_RESPONDING和VSS_E_WRITER_STATUS_NOT_AVAILABLE由 VSS 生成。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | vsbackup.h (包括 VsBackup.h、Vss.h、VsWriter.h) |
Library | VssApi.lib |