IVssProviderCreateSnapshotSet::CommitSnapshots 方法 (vsprov.h)

CommitSnapshots 方法可快速提交此提供程序中的所有 LUN。

语法

HRESULT CommitSnapshots(
  [in] VSS_ID SnapshotSetId
);

参数

[in] SnapshotSetId

标识卷影副本集的 VSS_ID

返回值

返回代码/值 说明
S_OK
0x00000000L
操作已成功完成。
E_OUTOFMEMORY
0x8007000EL
内存不足或其他系统资源不足。
E_INVALIDARG
0x80070057L
其中一个参数值无效。
VSS_E_OBJECT_NOT_FOUND
0x80042308L
SnapshotSetId 参数引用未找到的对象。
VSS_E_PROVIDER_VETO
0x80042306L
发生意外的提供程序错误。 提供程序必须在应用程序事件日志中记录此错误的详细信息。
 

如果返回任何其他值,VSS 会将事件写入事件日志,并将错误转换为 VSS_E_UNEXPECTED_PROVIDER_ERROR

注解

此方法是在应创建卷影副本的定义时间调用的。 对于此卷影副本集中的每个准备好的 LUN,提供程序将执行保留时间点 LUN 内容所需的工作。 执行此方法时,应用程序和 I/O 子系统基本上都处于静止状态。 提供程序必须最大程度地减少此方法所花费的时间量。 一般情况下,此方法完成所需的时间应少于一秒。 此方法在“刷新并保留”窗口中调用,如果 10 秒内未收到发布,VSS 内核支持将取消刷新和保留,这将导致 VSS 在卷影副本创建过程中失败。 如果每个提供程序花费超过一两秒来完成此调用,则整个卷影副本创建失败的可能性很大。

由于 I/O 系统处于静止,因此提供程序必须注意不要启动任何 I/O,因为它可能会使系统死锁 ,例如,通过此方法调试或跟踪 I/O,或者从此方法进行的任何调用。 内存映射文件和分页 I/O 此时不会冻结。

请注意,I/O 系统仅在执行此方法时处于静止状态。 在最后一个提供程序的 CommitSnapshots 方法返回后,VSS 服务立即释放源 LUN 上所有挂起的写入。 如果提供程序对源和卷影复制 LUN 执行任何同步,则必须在提供程序的 CommitSnapshots 方法返回之前完成此同步;它不能异步执行。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 vsprov.h

另请参阅

IVssProviderCreateSnapshotSet