Name

CreateSnapshot

Description

HRESULT
CreateSnapshot([in] BSTR name,
               [in] BSTR description,
               [in] LONG options,
               [in] IVixHandle* propertyList,
               [in] ICallback* jobDoneCallback,
               [out,retval] IJob** createJob);

This method saves a copy of the virtual machine state as a snapshot object. The ISnapshot object is returned in the IJob object properties.

Parameters

name
A user-defined name for the snapshot; need not be unique.
description
A user-defined description for the snapshot.
options
Flags to specify how the snapshot should be created. Any combination of the following or 0 to exclude memory:
propertyListHandle
Must be VIX_INVALID_HANDLE.
jobDoneCallback
An ICallback instance that will be called when the operation is complete.
createJob
Returns an IJob object that describes the state of this asynchronous operation.

Return Value

Remarks

Side Effects

None.

Requirements

VixCOM.h, since VMware Workstation 6.0

Example


VBScript:
Dim lib
Dim host
Dim job
Dim vm
Dim results
Dim snapshot

Set lib = CreateObject("VixCOM.VixLib")

Set job = lib.Connect(VixCOM.Constants.VIX_API_VERSION, VixCOM.Constants.VIX_SERVICEPROVIDER_VMWARE_WORKSTATION, Empty, 0, Empty, Empty, 0, Nothing, Nothing)

' results needs to be initialized before it's used, even if it's just going to be overwritten.
Set results = Nothing

err = job.Wait(Array(VixCOM.Constants.VIX_PROPERTY_JOB_RESULT_HANDLE), results)
If lib.ErrorIndicatesFailure(err) Then
   ' Handle the error...
End If

Set host = results(0)

Set job = host.OpenVM("c:\Virtual Machines\vm1\win2000.vmx", Nothing)
err = job.Wait(Array(VixCOM.Constants.VIX_PROPERTY_JOB_RESULT_HANDLE), results)
If lib.ErrorIndicatesFailure(err) Then
   ' Handle the error...
End If

Set vm = results(0)

Set job = vm.PowerOn(VixCOM.Constants.VIX_VMPOWEROP_LAUNCH_GUI, Nothing, Nothing)
err = job.WaitWithoutResults()
If lib.ErrorIndicatesFailure(err) Then
   ' Handle the error...
End If

Set job = vm.CreateSnapshot("Snapshot 1", "Test Snapshot", VixCOM.Constants.VIX_SNAPSHOT_INCLUDE_MEMORY, Nothing, Nothing)
err = job.Wait(Array(VixCOM.Constants.VIX_PROPERTY_JOB_RESULT_HANDLE), results)
If lib.ErrorIndicatesFailure(err) Then
   ' Handle the error...
End If

snapshot = results(0)

' Use snapshot...

Set snapshot = Nothing
Set results = Nothing
Set job = Nothing
Set vm = Nothing

host.Disconnect()

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