# Name

VixVM_Delete

# Description

    VixHandle
    VixVM_Delete(VixHandle vmHandle,
                 VixVMDeleteOptions deleteOptions,
                 VixEventProc *callbackProc,
                 void *clientData);

This function permanently deletes a virtual machine from your host system.

# Parameters

vmHandle
  Identifies a virtual machine. Call VixVM_Open() to create a virtual machine handle.
deleteOptions
  For VMware Server 2.0 and ESX, this value must be VIX_VMDELETE_DISK_FILES. For all other versions it can be either 0 or VIX_VMDELETE_DISK_FILES. When option is VIX_VMDELETE_DISK_FILES, deletes all associated files. When option is 0, does not delete *.vmdk virtual disk file(s).
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 call.

# Remarks

- This function permanently deletes a virtual machine from your host system. You can accomplish the same effect by deleting all virtual machine files using the host file system. This function simplifies the task by deleting all VMware files in a single function call. If a deleteOptions value of 0 is specified, the virtual disk (vmdk) files will not be deleted. This function does not delete other user files in the virtual machine folder.
- This function is successful only if the virtual machine is powered off or suspended.
- Deleting a virtual machine that is the parent of a linked clone renders the linked clone useless.
- This function is asynchronous. It uses a job handle to report when it is complete.
- Calling VixVM_Delete() on a virtual machine handle does not release the virtual machine handle. You still need to call Vix_ReleaseHandle() on the virtual machine handle.

# 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_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;
    }
    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;
    }

    jobHandle = VixVM_Delete(vmHandle, VIX_VMDELETE_DISK_FILES, NULL, NULL);

    if (VIX_OK != err) {
       // Handle the error...
       goto abort;
    }

    Vix_ReleaseHandle(jobHandle);

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