If no mirroring will be performed, there is no need to continue. However, to mirror the objects, one mirror object (ID 15 in the figure) must be "mirrored" to another mirror object (ID 14 in the figure). This is done with the MM_AddMirrorObjectToMirrorGroup function.
WARNING:We strongly recommend that this function be used only on empty mirror objects. Performing this operation on mirror objects containing information can (and most likely will) cause data corruption.
The mirror object identified by mirrorObjectID (the first parameter) is added to the "mirror group" identified by mirrorGroupObjectID (the second parameter). For newly created mirror groups, a call to MM_ForceMirrorGroupInSync prevents mirroring of random data in the mirrorGroupObjectID area.
Also for newly created mirror groups, the mirroring direction (what gets mirrored to what) is somewhat arbitrary. However, if the application is mirroring mirror objects where one object contains data (see Warning above), the direction is CRITICAL! Information from the mirror object mirrorObjectID will be overwritten with information from mirror object mirrorGroupObjectID. This process deletes the mirror object mirrorObjectID from the Media Manager’s database.
Following the example in the figure, the mirror object with ID = 15 will be deleted from Media Manager’s database by calling the function MM_AddMirrorObjectToMirrorGroup. Any further operations to that object are performed by operations to the mirror object ID = 14. This is why the parameter passed to the MM_DelPartitionFromMirrorGroup function identifies a partition object, as that is the only way to identify the object to be removed from the mirror group.