Clone a Disk by Copying Data

This function copies data from one virtual disk to another, converting (disk type, size, hardware) as specified.
vixError = VixDiskLib_Clone(appGlobals.connection, appGlobals.diskPath, srcConnection, appGlobals.srcPath, &createParams, CloneProgressFunc, NULL, TRUE);
Due to a vSphere 6.5 security enhancement,
VixDiskLib_Clone()
can no longer clone local disks to remote disks that do not belong to any VM. Previous releases allowed use of a retained username and password, but now enhanced security verification is required. The procedure for
VixDiskLib_Clone()
to make a remote connection is first to get an NFC ticket from the ESXi host based on the
MoRef
of the VM that manages the cloned-to disks. Then build an authenticated NFC connection to the host using that ticket. The
MoRef
of the VM must be specified in
vmxSpec
of the remote connection parameter passed to
VixDiskLib_Clone()
. The VM must be powered off, and the target disks must already exist before cloning, not necessarily with the same names. Afterwards the VM may be removed from the inventory with
UnregisterVM
, but it must remain on the datastore with its cloned virtual disks.