VixHandle VixVM_BeginReplay(VixHandle vmHandle, VixHandle snapshotHandle, int options, VixHandle propertyListHandle, VixEventProc *callbackProc, void *clientData);
This function replays a recording of a virtual machine.
VixError err = VIX_OK; VixHandle hostHandle = VIX_INVALID_HANDLE; VixHandle jobHandle = VIX_INVALID_HANDLE; VixHandle vmHandle = VIX_INVALID_HANDLE; VixHandle snapshotHandle = VIX_INVALID_HANDLE; jobHandle = VixHost_Connect(VIX_API_VERSION, VIX_SERVICEPROVIDER_VMWARE_WORKSTATION, NULL, // hostName 0, // hostPort NULL, // userName NULL, // password 0, // options VIX_INVALID_HANDLE, // propertyListHandle NULL, // callbackProc NULL); // clientData err = VixJob_Wait(jobHandle, VIX_PROPERTY_JOB_RESULT_HANDLE, &hostHandle, VIX_PROPERTY_NONE); if (VIX_OK != err) { // Handle the error... goto abort; } // Release handle after use: Vix_ReleaseHandle(jobHandle); jobHandle = VixVM_Open(hostHandle, "c:\\Virtual Machines\\vm1\\win2000.vmx", NULL, // callbackProc NULL); // clientData err = VixJob_Wait(jobHandle, VIX_PROPERTY_JOB_RESULT_HANDLE, &vmHandle, VIX_PROPERTY_NONE); if (VIX_OK != err) { // Handle the error... goto abort; } // Release handle after use: Vix_ReleaseHandle(jobHandle); // Retrieve recording. Insert your snapshot traversal code here. Example: err = VixVM_GetRootSnapshot(vmHandle, 0, &snapshotHandle); if (VIX_OK != err) { // Handle the error... goto abort; } // Start replaying the virtual machine. jobHandle = VixVM_BeginReplay(vmHandle, snapshotHandle, VIX_VMPOWEROP_LAUNCH_GUI, // options VIX_INVALID_HANDLE, // propertyListHandle NULL, // callbackProc NULL); // clientData err = VixJob_Wait(jobHandle, VIX_PROPERTY_NONE); // Release handle after use: Vix_ReleaseHandle(jobHandle); // Wait for some activity to happen, then stop replaying. jobHandle = VixVM_EndReplay(vmHandle, 0, // options VIX_INVALID_HANDLE, // propertyListHandle NULL, // callbackProc NULL); // clientData err = VixJob_Wait(jobHandle, VIX_PROPERTY_NONE); abort: Vix_ReleaseHandle(jobHandle); Vix_ReleaseHandle(snapshotHandle); Vix_ReleaseHandle(vmHandle); VixHost_Disconnect(hostHandle);