IVssCreateExpressWriterMetadata::SetRestoreMethod 方法 (vswriter.h)
指定如何还原快速编写器的数据。
语法
HRESULT SetRestoreMethod(
[in] VSS_RESTOREMETHOD_ENUM method,
[in] LPCWSTR wszService,
[in] LPCWSTR wszUserProcedure,
[in] VSS_WRITERRESTORE_ENUM writerRestore,
[in] bool bRebootRequired
);
参数
[in] method
一个VSS_RESTOREMETHOD_ENUM枚举值,该值指定要在还原操作中使用的还原方法。 此参数是必需的,不能 VSS_RME_UNDEFINED、 VSS_RME_RESTORE_TO_ALTERNATE_LOCATION或 VSS_RME_CUSTOM。
[in] wszService
指向宽字符串的指针,其中包含必须在还原操作之前停止,然后在还原操作发生后启动的服务的名称(如果 方法 的值 VSS_RME_STOP_RESTORE_START 或 VSS_RME_RESTORE_STOP_START)。
如果 方法 的值未 VSS_RME_STOP_RESTORE_START 或 VSS_RME_RESTORE_STOP_START,则不使用此参数,应将其设置为 NULL。
[in] wszUserProcedure
保留供将来使用。 此参数的值应始终设置为 NULL。
[in] writerRestore
一个VSS_WRITERRESTORE_ENUM枚举值,该值指定编写器是否将参与还原其数据。 此参数必须设置为 VSS_WRE_NEVER。
[in] bRebootRequired
一个布尔值,指示还原操作完成后是否需要重新启动。
返回值
下面是此方法的有效返回代码。
值 | 含义 |
---|---|
|
操作成功。 |
|
其中一个参数值无效。 |
|
调用方内存或其他系统资源不足。 |
|
XML 文档无效。 有关详细信息,请查看事件日志。 有关详细信息,请参阅 VSS 下的事件和错误处理。 |
|
意外错误。 错误代码记录在错误日志文件中。 有关详细信息,请参阅 VSS 下的事件和错误处理。
Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 在 Windows Server 2008 R2 和 Windows 7 之前不支持此值。 改用E_UNEXPECTED。 |
注解
快速编写器只能定义一种还原方法。 如果未重写还原方法,则将使用相同的方法还原快速编写器的所有组件。
Express 编写器通过设置还原目标来逐个组件替代还原方法,通常在处理 preRestore 事件 (CVssWriter::OnPreRestore) 。
请务必注意,尽管还原方法按编写器应用,但方法还是按组件实现的。 例如,如果 方法 参数指定的方法是 VSS_RME_RESTORE_IF_CAN_REPLACE,则组件中的所有文件都将还原到其原始位置(如果所有文件都可以替换而不发生错误)。 否则,如果指定了一个位置,它们将还原到其备用位置。
如果符合以下任一条件,则可以将文件还原到备用位置映射:
- 还原方法是 VSS_RME_RESTORE_IF_NOT_THERE,并且磁盘上已存在文件的某个版本。
- 还原方法 VSS_RME_RESTORE_IF_CAN_REPLACE,并且磁盘上存在文件版本,无法替换。
有关还原方法的详细信息,请参阅 设置 VSS 还原方法。
如果还原方法VSS_RME_STOP_RESTORE_START或VSS_RME_RESTORE_STOP_START,则必须将服务的正确名称作为 wszService 参数提供。 有关编写器在还原操作期间参与停止和重启服务的信息,请参阅 停止请求者还原的服务。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | vswriter.h (包括 Vss.h、VsWriter.h) |
Library | VssApi.lib |