$err = VMRemoveSnapshot($vmHandle, $snapshotHandle, $options); HRESULT RemoveSnapshot([in] ISnapshot* snapshot, [in] LONG options, [in] ICallback* jobDoneCallback, [out,retval] IJob** removeJob);
This function deletes all saved states for the specified snapshot.
use VMware::Vix::Simple; use VMware::Vix::API::Constants;since VMware Server 1.0
my $err = VIX_OK; my $hostHandle = VIX_INVALID_HANDLE; my $vmHandle = VIX_INVALID_HANDLE; my $snapshotHandle = VIX_INVALID_HANDLE; my $numRootSnapshots; my $i; ($err, $hostHandle) = HostConnect(VIX_API_VERSION, VIX_SERVICEPROVIDER_VMWARE_WORKSTATION, undef, # hostName 0, # hostPort undef, # userName undef, # password 0, # options VIX_INVALID_HANDLE); # propertyListHandle die "HostConnect() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK; ($err, $vmHandle) = VMOpen($hostHandle, "c:\\Virtual Machines\\vm1\\win2000.vmx"); die "VMOpen() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK; ($err, $numRootSnapshots) = VMGetNumRootSnapshots($vmHandle); die "VMGetNumRootSnapshots() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK; for ($i = 0; $i < $numRootSnapshots; $i++) { ($err, $snapshotHandle) = VMGetRootSnapshot($vmHandle, $i); # index die "VMGetRootSnapshot() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK; $err = VMRemoveSnapshot($vmHandle, $snapshotHandle, 0); # options ReleaseHandle($snapshotHandle); } ReleaseHandle($vmHandle); HostDisconnect($hostHandle);