Name

VixVM_Suspend

Description

VixHandle
VixVM_Suspend(VixHandle vmHandle,
              VixVMPowerOpOptions powerOffOptions,
              VixEventProc *callbackProc,
              void *clientData);

This function suspends a virtual machine.

Parameters

vmHandle
Identifies a virtual machine. Call VixVM_Open() to create a virtual machine handle.
powerOffOptions
Must be 0.
callbackProc
A callback function that will be invoked when the power 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

This function suspends a virtual machine. It is an asynchronous operation, and the job will be signaled when the operation completes. If the virtual machine is not powered on when you call this function, the function returns the error VIX_E_VM_NOT_RUNNING.

Side Effects

None.

Requirements

vix.h, since VMware Server 1.0

Example

VixError err = VIX_OK;
VixHandle hostHandle = VIX_INVALID_HANDLE;
VixHandle jobHandle = VIX_INVALID_HANDLE;
VixHandle vmHandle = VIX_INVALID_HANDLE;

jobHandle = VixHost_Connect(VIX_API_VERSION,
                            VIX_SERVICEPROVIDER_VMWARE_VI_SERVER,
                            "https://10.1.9.245/sdk", // hostName
                            0, // hostPort
                            "root", // userName
                            "secret", // 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;
}
Vix_ReleaseHandle(jobHandle);
jobHandle = VixVM_Open(hostHandle,
                       "[storage1] vm/vm.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;
}
Vix_ReleaseHandle(jobHandle);

// Assume this virtual machine is already running.
jobHandle = VixVM_Suspend(vmHandle,
                           0, // powerOffOptions,
                           NULL, // callbackProc,
                           NULL); // clientData
err = VixJob_Wait(jobHandle,
                  VIX_PROPERTY_NONE);
abort:
   Vix_ReleaseHandle(jobHandle);
   Vix_ReleaseHandle(vmHandle);
   VixHost_Disconnect(hostHandle);

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