IVssHardwareSnapshotProvider::FillInLunInfo method (vsprov.h)

The FillInLunInfo method prompts the hardware provider to indicate whether it supports the corresponding disk device and correct any omissions in the VDS_LUN_INFORMATION structure. VSS calls the FillInLunInfo method after the IVssHardwareSnapshotProvider::LocateLuns method or before the IVssHardwareSnapshotProvider::OnLunEmpty method to obtain the VDS_LUN_INFORMATION structure associated with a shadow copy LUN. VSS will compare the VDS_LUN_INFORMATION structure received in the IVssHardwareSnapshotProvider::GetTargetLuns method to identify shadow copy LUNs. If the structures do not match, the requester will receive VSS_S_SOME_SNAPSHOTS_NOT_IMPORTED, which indicates a mismatch.

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

Syntax

HRESULT FillInLunInfo(
  [in]      VSS_PWSZ            wszDeviceName,
  [in, out] VDS_LUN_INFORMATION *pLunInfo,
  [out]     BOOL                *pbIsSupported
);

Parameters

[in] wszDeviceName

Device corresponding to the shadow copy LUN.

[in, out] pLunInfo

The VDS_LUN_INFORMATION structure for the shadow copy LUN.

[out] pbIsSupported

The provider must return TRUE in the location pointed to by the pbIsSupported parameter if the device is supported.

Return value

VSS ignores this method's return value.

Windows Server 2003:  VSS does not ignore the return value, which can be one of the following values.

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

Remarks

VSS calls the FillInLunInfo method for each VDS_LUN_INFORMATION structure that the provider previously initialized in its GetTargetLuns method. VSS also calls the FillInLunInfo method for each new disk device that arrives in the system during the import process.

The provider can correct any omissions in the VDS_LUN_INFORMATION structure received in the pLunInfo parameter. However, the provider should not modify the value of the m_rgInterconnects member of this structure.

The members of the VDS_LUN_INFORMATION structure correspond to the SCSI Inquiry Data and Vital Product Data page 80 (device serial number) information, with the following exceptions:

  • The m_version member must be set to VER_VDS_LUN_INFORMATION.
  • The m_BusType member is ignored in comparisons during import. This value depends on the PnP storage stack on the corresponding disk device. Usually this is VDSBusTypeScsi.
  • The m_diskSignature member is ignored in comparisons during import. The provider must set this member to GUID_NULL.
The members of the VDS_STORAGE_DEVICE_ID_DESCRIPTOR structure (in the m_deviceIdDescriptor member of the VDS_LUN_INFORMATION structure) correspond to the page 83 information. In this structure, each VDS_STORAGE_IDENTIFIER structure corresponds to the STORAGE_IDENTIFIER structure for a device identifier (that is, a storage identifier with an association type of zero). For more information about the STORAGE_IDENTIFIER structure, see the Windows Driver Kit (WDK) documentation.

If the FillInLunInfo method is called for a LUN that is unknown to the provider, the provider should not return an error. Instead, it should return FALSE in the BOOL value that the pbIsSupported parameter points to and return success. If the provider recognizes the LUN, it should set the BOOL value to TRUE.

Requirements

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

See also

AreLunsSupported

GetTargetLuns

IVssHardwareSnapshotProvider

LocateLuns

OnLunEmpty

VDS_LUN_INFORMATION

VDS_STORAGE_IDENTIFIER