IVssProviderCreateSnapshotSet::CommitSnapshots 方法 (vsprov.h)

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

Syntax

HRESULT CommitSnapshots(
  [in] VSS_ID SnapshotSetId
);

参数

[in] SnapshotSetId

标识卷影复制集 的VSS_ID

返回值

返回代码/值 Description
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 方法返回之前完成此同步;无法异步执行。

要求

Requirement 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows操作系统
Header vsprov.h

另请参阅

IVssProviderCreateSnapshotSet