IVssHardwareSnapshotProviderEx::ResyncLuns method (vsprov.h)
The VSS service calls this method to notify hardware providers that a LUN resynchronization is needed.
Syntax
HRESULT ResyncLuns(
[in] VDS_LUN_INFORMATION *pSourceLuns,
[in] VDS_LUN_INFORMATION *pTargetLuns,
[in] DWORD dwCount,
[out] IVssAsync **ppAsync
);
Parameters
[in] pSourceLuns
A pointer to an array of dwCount VDS_LUN_INFORMATION structures, one for each LUN that contributes to the shadow copy volume.
[in] pTargetLuns
A pointer to an array of dwCount VDS_LUN_INFORMATION structures, one for each LUN that contributes to the destination volume where the contents of the shadow copy volume are to be copied.
[in] dwCount
The number of elements in the pSourceLuns array. This is also the number of elements in the pTargetLuns array.
[out] ppAsync
A pointer to a location that will receive an IVssAsync interface pointer that can be used to retrieve the status of the resynchronization operation. When the operation is complete, the caller must release the interface pointer by calling the IUnknown::Release method.
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. |
|
An unexpected provider error occurred. If this error code is returned, the error must be described in an entry in the application event log, giving the user information on how to resolve the problem. |
|
The provider cannot perform the operation because there is not enough disk space. |
Remarks
The destination LUNs can be the LUNs that contribute to the original production volume from which the shadow copy was created, or they can be new or existing LUNs that are used to replace an original volume that is removed from production.
The provider must perform the resynchronization by copying data at the LUN array level, not at the host level. This means that the provider cannot implement LUN resynchronization by simply copying the contents of the source LUN to the destination LUN. The I/O that is required to perform the LUN resynchronization must be performed in the hardware, through the disk devices of the resynchronized LUNs, and not through the host computer. This I/O should be completely transparent to the host computer.
When the resynchronization is complete, the LUNs are fully functional and are available for I/O operations.
The underlying disk hardware must support unique page 83 device identifiers.
If the destination LUN is larger than the source LUN, the provider must resize the destination LUN if necessary to ensure that it matches the source LUN after resynchronization.
This method cannot be called in WinPE, and it cannot be called in Safe mode. Before calling this method, the caller must use the IVssBackupComponents::InitializeForRestore method to prepare for the resynchronization.
Requirements
Requirement | Value |
---|---|
Minimum supported client | None supported |
Minimum supported server | Windows Server 2008 R2 [desktop apps only] |
Target Platform | Windows |
Header | vsprov.h |