IVssHardwareSnapshotProvider::OnLunEmpty 方法 (vsprov.h)

每当 VSS 确定卷影复制 LUN 不包含任何相关数据时,将调用 OnLunEmpty 方法。 所有卷影副本都已删除 (这还会导致 LUN 的删除。) 提供程序可能会回收 LUN 资源,并重新用于其他目的。 VSS 将卸载任何受影响的卷。 提供程序不应在 OnLunEmpty 期间发出重新扫描。 VSS 将处理此清理。

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

语法

HRESULT OnLunEmpty(
  [in] VSS_PWSZ            wszDeviceName,
  [in] VDS_LUN_INFORMATION *pInformation
);

参数

[in] wszDeviceName

对应于包含要删除的卷影副本的 LUN 的设备。

[in] pInformation

指向 VDS_LUN_INFORMATION 结构的指针,该结构包含有关包含要删除的卷影副本的 LUN 的信息。

返回值

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

返回代码/值 说明
S_OK
0x00000000L
操作已成功完成。
E_OUTOFMEMORY
0x8007000EL
内存不足或其他系统资源。
E_INVALIDARG
0x80070057L
其中一个参数值无效。
VSS_E_PROVIDER_VETO
0x80042306L
发生意外的提供程序错误。 提供程序必须在应用程序事件日志中报告事件,为用户提供有关如何解决问题的信息。

注解

硬件提供程序应删除卷影副本并回收 LUN,前提是且仅当
正在调用 OnLunEmpty。 硬件卷影副本可以用作备份介质本身,因此应像存储阵列处理用于常规磁盘的 LUN 一样处理 LUN。 在 处理 OnLunEmpty 之外回收 LUN 应仅限于紧急或管理员手动执行显式操作。

对于永久性卷影副本,请求者在不再需要卷影副本时将其删除。 对于非持久性自动释放卷影副本,当请求者对 IVssBackupComponents 对象调用 IUnknown::Release 时,VSS 服务会删除卷影副本。 对于非持久性非自动释放卷影副本,当计算机重启时,VSS 服务会删除卷影副本。 在所有情况下,VSS 服务会根据需要为每个卷影复制 LUN 调用提供程序的 OnLunEmpty 方法。

请注意,会尽力调用 OnLunEmpty 。 仅当保证 LUN 为空时,VSS 才会调用 方法。 在许多情况下,LUN 为空,但由于错误或外部情况,VSS 无法检测到此情况。 在这种情况下,用户应使用存储管理软件清除此状态。

下面是一些示例:

  • 当卷影复制 LUN 移动到其他主机,但实际上未通过 VSS 传输或导入时,该 LUN 显示为任何其他 LUN,并且只需删除卷,而无需任何 VSS 通知。
  • 在创建卷影副本时崩溃或意外重启。
  • 已取消的导入。

要求

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

另请参阅

IVssHardwareSnapshotProvider