Name
VixVM_InstallTools
Description
VixHandle
VixVM_InstallTools(VixHandle vmHandle,
int options,
char *commandLineArgs,
VixEventProc *callbackProc,
void *clientData);
Prepares to install VMware Tools on the guest operating system.
Parameters
- vmHandle
-
Identifies a virtual machine. Call VixVM_Open() to create a virtual machine handle.
- options
-
May be either
VIX_INSTALLTOOLS_MOUNT_TOOLS_INSTALLER
or
VIX_INSTALLTOOLS_AUTO_UPGRADE.
Either flag can be combined with the
VIX_INSTALLTOOLS_RETURN_IMMEDIATELY
flag using the bitwise inclusive OR operator (|). See remarks for more information.
- commandLineArgs
-
Must be
NULL.
- 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 operation.
Remarks
- If the option
VIX_INSTALLTOOLS_MOUNT_TOOLS_INSTALLER
is provided, the function prepares an ISO image to install VMware Tools
on the guest operating system. If autorun is enabled, as it often is on Windows,
installation begins, otherwise you must initiate installation. If VMware Tools
is already installed, this function prepares to upgrade it to the version
matching the product.
- If the option
VIX_INSTALLTOOLS_AUTO_UPGRADE
is provided, the function attempts to automatically upgrade VMware Tools
without any user interaction required, and then reboots the virtual machine.
This option requires that a version of VMware Tools already be installed.
If VMware Tools is not already installed, the function will fail.
- When the option
VIX_INSTALLTOOLS_AUTO_UPGRADE
is used on virtual machine with a Windows guest operating system, the
upgrade process may cause the Windows guest to perform a controlled reset
in order to load new device drivers. If you intend to perform additional
guest operations after upgrading the VMware Tools, it is recommanded that
after this task completes, that the guest be reset using
VixVM_Reset()
with the VIX_VMPOWEROP_FROM_GUEST flag, followed by calling
VixVM_WaitForToolsInGuest()
to ensure that the guest has reached a stable state.
- If the option
VIX_INSTALLTOOLS_AUTO_UPGRADE
is provided and the newest version of tools is already installed,
the function will return
VIX_OK. Some older versions of Vix may return VIX_E_TOOLS_INSTALL_ALREADY_UP_TO_DATE.
- If the
VIX_INSTALLTOOLS_RETURN_IMMEDIATELY
flag is set, this function will
report completion to the job handle
immediately after mounting the VMware Tools ISO image.
- If the
VIX_INSTALLTOOLS_RETURN_IMMEDIATELY
flag is not set for an ESX host, this function will
report completion to the job handle
immediately after mounting the VMware Tools ISO image.
- If the
VIX_INSTALLTOOLS_RETURN_IMMEDIATELY
flag is not set for a WS host, this function will
report completion to the job handle
only after the installation successfully completes or is cancelled.
- The virtual machine must be powered on to do this operation.
- If the Workstation installer calls for an ISO file that is not downloaded,
this function returns an error, rather than attempting to download the ISO file.
Side Effects
None.
Requirements
vix.h, since VMware Server 1.0
Minimum Supported Guest OS: Microsoft Windows NT Series, Linux
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;
}
Vix_ReleaseHandle(jobHandle);
// Power on the virtual machine before copying file.
jobHandle = VixVM_PowerOn(vmHandle,
0, // powerOnOptions
VIX_INVALID_HANDLE, // propertyListHandle
NULL, // callbackProc
NULL); // clientData
err = VixJob_Wait(jobHandle,VIX_PROPERTY_NONE);
if (VIX_OK != err) {
// Handle the error...
goto abort;
}
Vix_ReleaseHandle(jobHandle);
// Install VMware Tools in running virtual machine.
jobHandle = VixVM_InstallTools(vmHandle,
VIX_INSTALLTOOLS_MOUNT_TOOLS_INSTALLER, // options
NULL, // commandLineArgs
NULL, // callbackProc
NULL); // clientData
err = VixJob_Wait(jobHandle, VIX_PROPERTY_NONE);
if (VIX_OK != err) {
// Handle the error...
goto abort;
}
Vix_ReleaseHandle(jobHandle);
jobHandle = VixVM_PowerOff(vmHandle,
0, // powerOffOptions
NULL, // callbackProc
NULL); // clientData
err = VixJob_Wait(jobHandle, VIX_PROPERTY_NONE);
if (VIX_OK != err) {
// Handle the error...
goto abort;
}
abort:
Vix_ReleaseHandle(jobHandle);
Vix_ReleaseHandle(vmHandle);
VixHost_Disconnect(hostHandle);