Name

VixVM_BeginReplay

Description

VixHandle
VixVM_BeginReplay(VixHandle vmHandle,
                  VixHandle snapshotHandle,
                  int options,
                  VixHandle propertyListHandle,
                  VixEventProc *callbackProc,
                  void *clientData);

This function replays a recording of a virtual machine.

Parameters

vmHandle
Identifies a virtual machine. Call VixVM_Open() to create a virtual machine handle.
snapshotHandle
snapshot handle that represents the recording.
options
Must be VIX_VMPOWEROP_NORMAL or VIX_VMPOWEROP_LAUNCH_GUI.

propertyListHandle
Must be VIX_INVALID_HANDLE.
callbackProc
A callback function that will be invoked when the operation is complete.
clientData
A parameter that will be passed to the callbackProc function.

Return Value

VixHandle. A job handle that describes the state of this asynchronous operation.

Remarks

Side Effects

None.

Requirements

vix.h, since VMware Workstation 6.5.

Example

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);


Copyright (C) 2007-2010 VMware, Inc. All rights reserved.