IVssHardwareSnapshotProvider::AreLunsSupported 方法 (vsprov.h)

AreLunsSupported 方法确定硬件提供程序是否支持为卷贡献的所有 LUN 创建卷影副本。 VSS 为添加到卷影副本集的每个卷调用 AreLunsSupported 方法。 在调用此方法之前,VSS 会确定对卷做出贡献的 LUN。

对于特定卷,每个 LUN 只能贡献一次。 特定 LUN 可能会影响多个卷。

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

语法

HRESULT AreLunsSupported(
  [in]      LONG                lLunCount,
  [in]      LONG                lContext,
  [in]      VSS_PWSZ            *rgwszDevices,
  [in, out] VDS_LUN_INFORMATION *pLunInformation,
  [out]     BOOL                *pbIsSupported
);

参数

[in] lLunCount

参与此卷影复制卷的 LUN 计数。

[in] lContext

当前卷影复制集的卷影复制上下文由 _VSS_VOLUME_SNAPSHOT_ATTRIBUTES 枚举中的标志位掩码枚举。 如果设置了 VSS_VOLSNAP_ATTR_TRANSPORTABLE 标志,则卷影副本集是可传输的。

[in] rgwszDevices

与要复制的 LUN 对应的设备列表。

[in, out] pLunInformation

lLunCountVDS_LUN_INFORMATION结构的数组,每个 LUN 对应一个构成此卷影副本卷的 LUN。

[out] pbIsSupported

指向 BOOL 值的指针。 如果卷影复制支持所有设备,则提供程序应在 pbIsSupported 指向的位置存储 TRUE 值。

返回值

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

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

注解

如果硬件子系统支持 SCSI 查询数据和重要产品数据页 80 (设备序列号) 和页 83 (设备标识) 准则,则提供程序无需修改 pLunInformation 数组中的结构。

在任何情况下,AreLunsSupported 方法都不应修改 pLunInformation 数组中任何VDS_LUN_INFORMATION结构的 m_rgInterconnects成员的值

如果提供程序支持为 pLunInformation 数组中的所有 LUN 创建硬件卷影副本,则应在 pbIsSupported 参数指向的 BOOL 值中返回 TRUE。 如果提供程序不支持一个或多个 LUN 的硬件卷影副本,则必须将此 BOOL 值设置为 FALSE

如果无法创建卷影副本,则提供程序不得同意创建卷影副本,即使问题只是暂时性的。 如果暂时性条件(如资源不足)导致提供程序无法在调用 AreLunsSupported 时使用一个或多个 LUN 创建卷影副本,则提供程序必须将 BOOL 值设置为 FALSE

要求

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

另请参阅

IVssHardwareSnapshotProvider

VDS_LUN_INFORMATION

_VSS_VOLUME_SNAPSHOT_ATTRIBUTES