# 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
  Should 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.
- Call VixVM_PowerOn to resume running a suspended virtual machine.

# 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-2018 VMware, Inc. All rights reserved.