3.2.4.4.3.37 IVolumeClient3::SplitMirror (Opnum 40)

The SplitMirror method splits a dynamic mirrored volume into two independent simple volumes. One of the volumes keeps the identifier and drive letter of the original volume. The other volume is assigned a different identity.

 HRESULT SplitMirror(
   [in] LdmObjectId volumeId,
   [in] hyper volumeLastKnownState,
   [in] LdmObjectId diskId,
   [in] hyper diskLastKnownState,
   [in] wchar_t letter,
   [in] hyper letterLastKnownState,
   [in, out] TASK_INFO* tinfo
 );

volumeId: Specifies the OID of the volume to split.

volumeLastKnownState: Volume's last known modification sequence number.

diskId: Specifies the OID of the disk to split from the volume specified by volumeId.

diskLastKnownState: Last known modification sequence number of the disk to split off.

letter: Drive letter to assign to the disk identified by diskId. If no drive letter is needed for the volume, the value of this field MUST be a 2-byte Unicode null character or the Unicode SPACE character.

letterLastKnownState: Last known modification sequence number of the drive letter that is being assigned to the disk to split.

tinfo: Pointer to a TASK_INFO structure that the client can use to track the request's progress.

Return Values: The method MUST return 0 or a nonerror HRESULT on success, or an implementation-specific nonzero error code on failure (as specified in [MS-ERREF]; see also section 2.2.1 for HRESULT values predefined by the Disk Management Remote Protocol).

When the server receives an IVolumeClient3::SplitMirror message, it MUST process that message, as specified in IVolumeClient::SplitMirror (section 3.2.4.4.1.34).