Usually you create the first child disk from the parent and create successive children from the latest one in the chain. The disk tracks, in SPARSE format, any disk sectors changed since inception, as illustrated below.

Figure 1. Child disks created from parent
Shows how three successive child disks consume less space than their parent.

VixDiskLib_CreateChild() creates a child disk (or redo log) for a hosted virtual disk. After you create a child, it is generally not necessary to open the parent, or earlier children in the disk chain. The children’s vm.vmdk files point to redo logs, not to the parent disk, vm-flat.vmdk in this example. To access the original parent, or earlier children in the chain, you can use VixDiskLib_Attach() on hosted disk.

vixError = VixDiskLib_CreateChild(parent.Handle(), appGlobals.diskPath, 
              VIXDISKLIB_DISK_MONOLITHIC_SPARSE, NULL, NULL);