IVssHardwareSnapshotProviderEx::ResyncLuns 方法 (vsprov.h)

VSS 服务调用此方法以通知硬件提供程序需要重新同步 LUN。

注意 仅在 Windows Server 操作系统上支持硬件提供程序。

 

语法

HRESULT ResyncLuns(
  [in]  VDS_LUN_INFORMATION *pSourceLuns,
  [in]  VDS_LUN_INFORMATION *pTargetLuns,
  [in]  DWORD               dwCount,
  [out] IVssAsync           **ppAsync
);

参数

[in] pSourceLuns

指向 dwCount数组的指针VDS_LUN_INFORMATION 结构,每个 LUN 一个用于影响卷影复制卷的 LUN。

[in] pTargetLuns

指向 dwCount数组的指针,VDS_LUN_INFORMATION 结构,每个 LUN 对应一个,该 LUN 将参与到要复制卷影复制卷的内容的目标卷。

[in] dwCount

pSourceLuns 数组中的元素数。 这也是 pTargetLuns 数组中的元素数。

[out] ppAsync

指向将接收 IVssAsync 接口指针的位置的指针,该指针可用于检索重新同步操作的状态。 操作完成后,调用方必须通过调用 IUnknown::Release 方法释放接口指针。

返回值

此方法可以返回其中一个值。

返回代码/值 说明
S_OK
0x00000000L
操作已成功完成。
E_OUTOFMEMORY
0x8007000EL
内存不足或其他系统资源。
VSS_E_PROVIDER_VETO
0x80042306L
发生意外的提供程序错误。 如果返回此错误代码,则必须在应用程序事件日志中的条目中描述错误,为用户提供有关如何解决问题的信息。
VSS_E_INSUFFICIENT_STORAGE
0x8004231FL
提供程序无法执行该操作,因为没有足够的磁盘空间。

注解

目标 LUN 可以是用于创建卷影副本的原始生产卷的 LUN,也可以是用于替换从生产中删除的原始卷的新 LUN 或现有 LUN。

提供程序必须在 LUN 数组级别(而不是主机级别)复制数据来执行重新同步。 这意味着提供程序无法通过将源 LUN 的内容复制到目标 LUN 来实现 LUN 重新同步。 执行 LUN 重新同步所需的 I/O 必须在硬件中通过重新同步 LUN 的磁盘设备执行,而不是通过主计算机执行。 此 I/O 对主计算机应完全透明。

重新同步完成后,LUN 将完全正常运行,并且可用于 I/O 操作。

基础磁盘硬件必须支持唯一的第 83 页设备标识符。

如果目标 LUN 大于源 LUN,则提供程序必须根据需要调整目标 LUN 的大小,以确保在重新同步后与源 LUN 匹配。

此方法不能在 WinPE 中调用,也不能在安全模式下调用。 在调用此方法之前,调用方必须使用 IVssBackupComponents::InitializeForRestore 方法为重新同步做好准备。

要求

   
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 vsprov.h

另请参阅

IVssHardwareSnapshotProviderEx