IVssHardwareSnapshotProvider::AreLunsSupported method (vsprov.h)

The AreLunsSupported method determines whether the hardware provider supports shadow copy creation for all LUNs that contribute to the volume. VSS calls the AreLunsSupported method for each volume that is added to the shadow copy set. Before calling this method, VSS determines the LUNs that contribute to the volume.

For a specific volume, each LUN can contribute only once. A specific LUN may contribute to multiple volumes.

Note  Hardware providers are only supported on Windows Server operating systems.


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


[in] lLunCount

Count of LUNs contributing to this shadow copy volume.

[in] lContext

Shadow copy context for the current shadow copy set as enumerated by a bitmask of flags from the _VSS_VOLUME_SNAPSHOT_ATTRIBUTES enumeration. If the VSS_VOLSNAP_ATTR_TRANSPORTABLE flag is set, the shadow copy set is transportable.

[in] rgwszDevices

List of devices corresponding to the LUNs to be shadow copied.

[in, out] pLunInformation

Array of lLunCountVDS_LUN_INFORMATION structures, one for each LUN contributing to this shadow copy volume.

[out] pbIsSupported

Pointer to a BOOL value. If all devices are supported for shadow copy, the provider should store a TRUE value at the location pointed to by pbIsSupported.

Return value

This method can return one of these values.

Return code/value Description
The operation was successfully completed.
Out of memory or other system resources.
One of the parameter values is not valid.
An unexpected provider error occurred. The provider must report an event in the application event log providing the user with information on how to resolve the problem.


If the hardware subsystem supports the SCSI Inquiry Data and Vital Product Data page 80 (device serial number) and page 83 (device identity) guidelines, the provider should not need to modify the structures in the pLunInformation array.

In any case, the AreLunsSupported method should not modify the value of the m_rgInterconnects member of any VDS_LUN_INFORMATION structure in the pLunInformation array.

If the provider supports hardware shadow copy creation for all of the LUNs in the pLunInformation array, it should return TRUE in the BOOL value that the pbIsSupported parameter points to. If the provider does not support hardware shadow copies for one or more LUNs, it must set this BOOL value to FALSE.

The provider must never agree to create shadow copies if it cannot, even if the problem is only temporary. If a transient condition, such as low resources, makes it impossible for the provider to create a shadow copy using one or more LUNs when AreLunsSupported is called, the provider must set the BOOL value to FALSE.


Minimum supported client None supported
Minimum supported server Windows Server 2003 [desktop apps only]
Target Platform Windows
Header vsprov.h

See also