VIX API 1.8.1 Release Notes

Standalone release for VMware Workstation 7 | 10 Nov 2009 | Build 207905

Last document update: 6 Nov 2009

Check frequently for additions and updates to these release notes.


VIX 1.8.1 is the standalone VIX API release that incorporates compatibility libraries for Workstation 7.0 and Player 3.0. It also includes earlier VIX libraries delivered for Workstation 6.x and vSphere 4, without changes to those libraries.

To obtain the VIX 1.8.1 libraries, click the Download link on the VIX API landing page.

These release notes give compatibility information for Workstation 7.0 and Player 3.0. To find compatibility information for ESX/ESXi 4.0 and VMware vSphere, see the VIX 1.7 Release Notes. Client libraries for VMware vSphere are revised on a separate train. The VIX 1.8.1 release does not incorporate any new bug fixes to VIX-for-vSphere beyond those already present in VIX 1.7.

New in This Release

  • The VIX API is now available for VMware Player.
    You can now use the VIX API to automate operations with VMware Player! See the technical note Getting Started with the VIX API for VMware Player for details.
  • Support for encrypted virtual machines.
    See the new VixHost_OpenVM function in the VIX API Reference for details on setting the property list to include the encryption password. The vmrun utility has a new -vp flag to specify encryption password for a virtual machine.
  • More vmrun commands and features.
    Now you can enable or disable shared folders, and remove virtual machines, with the vmrun utility. See the manual Using vmrun to Control Virtual Machines for details.
  • New API calls.
    The following new C function was added since VIX API 1.6.1:
    • VixHost_OpenVM – Open a virtual machine by host handle.
    The following new Perl function was added:
    • HostOpenVM – Open a virtual machine by host handle.
    The following new COM binding was added:
    • Close – Inform the host that VIX is done with the virtual machine.
  • OpenUrlInGuest API deprecated.
    The C function VixVM_OpenUrlInGuest, the Perl function VMOpenUrlInGuest, and the COM method vm.OpenUrlInGuest, are all deprecated and may be removed from a future version of the VIX API.
  • Event Pump option deprecated.
    The option VIX_HOSTOPTION_USE_EVENT_PUMP, which you pass to the C function VixHost_Connect or the COM function host.Connect, is deprecated. VMware does not recommend using this option, which may be removed from a future version of the VIX API.
  • Library files located in new directories.
    Shared libraries and vix.lib are in a new directory now. VMware recommends compiling VIX clients using the wrapper library to avoid the issue of changing library location.

Resolved Issues

  • Support for VMware Management Appliance.
    The VIX 1.8.1 libraries now install correctly on the VMware Management Appliance (vMA).
  • Improved installation.
    You can install the VIX 1.8.1 libraries on beta and GA releases of Workstation 7. Earlier VIX 1.8 versions had several installer problems, now fixed.
  • Shared folders remain enabled after power cycle.
    Shared folders used to be disabled after powering a virtual machine off and on, but shared folders now persist across power cycles.
  • Host handle cleaned up after disconnect.
    In previous versions of the VIX API, when you called VixHost_Connect multiple times for the same host from the same client process, it returned the same host handle. This handle-sharing behavior caused problems because it made it too easy to accidentally use a host handle after it had been disconnected. The handle-sharing behavior has been eliminated. Now, separate calls result in separate handles, even when connecting to the same host.
  • List directory works for Windows network-mapped drives.
    The VixVM_ListDirectoryInGuest function now succeeds when listing directories on a network-mapped drive on a Windows guest.

Known Issues

  • Connect to VMware Server 1.0 can fail on Linux clients.
    On some Linux 32-bit distributions, calling VixHost_Connect to a remote VMware Server 1.0.x host might fail because VIX cannot find the libcrypto-0.9.7.so library. The workaround is to install the same version of VMware Server on the system where you run the VIX client program.
  • Case-insensitive search on vCenter Server with SQL database.
    The default SQL Server for vCenter Server performs case-insensitive database searches, which affects the VixVM_Open and VixHost_UnregisterVM functions. For example, if you have two VM pathnames, [datastore]VM/VM.vmx and [datastore]vm/vm.vmx, the VIX API cannot distinguish them for opening or registration. A workaround is to substitute the Oracle database server.
  • Snapshots do not always preserve power state.
    When a snapshot is created in a powered-on virtual machine with option 0 (exclude memory), the power state is not saved as part of the snapshot. Reverting to the snapshot leaves the virtual machine in powered-off state.
  • Power-on of unsupported guest OS returns unknown error.
    If you create a virtual machine with guest OS type unknown, or if the guest OS otherwise does not match its configuration, vCenter Server refuses to power it on due to UnsupportedGuest error, but VIX returns VIX_E_FAIL (Unknown error) instead.
  • Failures when connecting or disconnecting host handles from multiple threads simultaneously.
    When calling VixHost_Connect or VixHost_Disconnect from multiple threads in a single client, a crash or hang might occur. This was encountered in stress testing with 10 - 20 simultaneous threads.
  • Misreported power state of virtual machine suspended without VIX.
    If a virtual machine is opened by a client process using the VIX API, and the virtual machine is suspended by another process, VIX in the client process shows the virtual machine as powered-off instead of suspended.
  • After remove shared folder, delay before checking guest.
    After removing a shared folder with VixVM_RemoveSharedFolders, your program should wait several seconds before calling VixVM_DirectoryExistsInGuest. Otherwise, due to caching, the VIX libraries might say the directory still exists.
  • Cannot simultaneously connect to different host types.
    VIX programs running on any type of host should not call VixHost_Connect multiple times in the same process with different hostType values. In other words, a VIX client process cannot simultaneously connect to both a Workstation host and to vSphere (ESX/ESXi or vCenter Server). This is because different DLLs or shared-objects are loaded for connecting to each host type, and it is a problem to load different libraries from the same process.
  • On Windows 7, build VIX Perl with Visual Studio 2008.
    On Windows 7, you need to build the vix-perl library with Visual Studio 2008. If you use an earlier version of Visual Studio, scripts often fail with the “Can't load VixBinding.dll” error message.
  • RunScriptInGuest does not execute script with cscript.exe interpreter.
    The cscript.exe interpreter relies on a file's extension to determine what type of scripting engine to run. VixVM_RunScriptInGuest copies text of the script into a file with .tmp extension, so cscript.exe is unable to determine what type of script it is.