The Virtual Machine Communication Interface (VMCI) is an infrastructure that provides fast and efficient communication between a virtual machine and the host operating system and between two or more virtual machines on the same host. The VMCI SDK facilitates development of applications that use the VMCI infrastructure.

The VMCI SDK has the following components:
Without VMCI, virtual machines communicate with the host using the network layer. Using the network layer adds overhead to the communication. With VMCI communication overhead is minimal and different tasks that require that communication can be optimized.
In Workstation 6.0, VMCI is not installed as part of the default installation.
Making VMCI available on a virtual machine requires:
Note: No action is required to make VMCI available on a host.
To enable VMCI on your virtual machine, add the following two lines to the virtual machine configuration file (.vmx file):
# The following line is REQUIRED.
vmci0.present = "TRUE"
# The following line is OPTIONAL.
vmci0.id = "num"
Here, num is a positive integer that is unique for each virtual machine on your host. That is, for any virtual machine, you can choose a number (1, 2, 3, etc.) but two virtual machines must not have the same number as their vmci0.id.
After you've edited the .vmx file, you can install the software as part of VMware Tools, as follows:
For a Windows virtual machine:
You might have to reboot the virtual machine to use VMCI.
When you install Workstation 6.0 (on your host machine) or VMware Tools (in your virtual machines), two sample applications are included:
| Host | Guest | |
|---|---|---|
| Linux | /usr/share/doc/vmware/vmware-vmci/samples/README | /usr/share/doc/vmware-tools/vmware-vmci/samples/README |
| Windows | C:\Program Files\VMware\VMware Workstation\VMCI\Sample Applications\README | C:\Program Files\VMware\VMware Tools\VMCI\Sample Applications\README |
From the user's point of view, the API consists of two main parts, the shared memory API and the datagram API. The access control API and the discovery service API are meant to be used in conjunction with the shared memory API or the datagram API.