3.2.4.4.3.43 IVolumeClient3::DiskMerge (Opnum 46)

The DiskMerge method merges a foreign disk group into the primary disk group of the server. The foreign disks and their volumes are brought online.

 HRESULT DiskMerge(
   [in] int cchDgid,
   [in, size_is(cchDgid)] byte* dgid,
   [in] int numDisks,
   [in, size_is(numDisks)] LdmObjectId* diskList,
   [in] hyper merge_config_tid,
   [in] int numRids,
   [in, size_is(numRids)] hyper* merge_dm_rids,
   [out] TASK_INFO* tinfo
 );

cchDgid: Size of dgid in characters, including the terminating null character.

dgid: Null-terminated ASCII string that contains the UUID of the disk group to be merged.

numDisks: Number of disks passed in diskList.

diskList: Array of object identifiers of type LdmObjectId that specify the disks to be merged from the dgid group.

merge_config_tid: Last known modification sequence number of the disk group to be merged.

numRids: Number of elements passed in merge_dm_rids.

merge_dm_rids: Array of disk records for the disks in diskList.

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::DiskMerge message, it MUST process that message, as specified in IVolumeClient::DiskMerge (section 3.2.4.4.1.40).