IVssProviderCreateSnapshotSet::CommitSnapshots 方法 (vsprov.h)
CommitSnapshots 方法可快速提交此提供程序中的所有 LUN。
语法
HRESULT CommitSnapshots(
[in] VSS_ID SnapshotSetId
);
参数
[in] SnapshotSetId
标识卷影副本集的 VSS_ID 。
返回值
返回代码/值 | 说明 |
---|---|
|
操作已成功完成。 |
|
内存不足或其他系统资源不足。 |
|
其中一个参数值无效。 |
|
SnapshotSetId 参数引用未找到的对象。 |
|
发生意外的提供程序错误。 提供程序必须在应用程序事件日志中记录此错误的详细信息。 |
如果返回任何其他值,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 |