If I install a virtual machine additions package on a virtual machine, (e.g. Virtual Machine Additions for Microsoft Virtual PC 2007, Integration Components on Windows Virtual PC, and Guest Additions on Oracle VM VirtualBox), what happens in the backend on the virtual machine when I enable integration features like mouse pointer integration, window resizing, and folder sharing? In other words, how are integration features internally implemented?

For mouse pointer integration, in Virtual PC, with integration features enabled, the mouse moves much faster, and, on the bottom and right edges, parts of the guest cursor are visible on the outside. With it disabled, the cursor moves more slowly. My suspicion is that with integration enabled, the cursor is actually a part of the host OS, and it sends the commands to the guest. I've heard reports that installing integration software on a host PC causes my cursor to disappear. I also know that shared folders are implemented as network drives. Am I right?

  • Complicates process made simple the additions install drivers and services as required – Ramhound Oct 17 '13 at 23:41

In general, it allows the hypervisor to interface with the guest operating system at a more optimal level.

Pointing device

In case of a pointing device. The hypervisor first captures the location of the mouse cursor within the window of the guest operating window as it appears on the host.

When you then move your mouse, this movement has to be translated into a relative movement as it would happen in the guest environment. This movement is then again translated so that it can be read via the virtual USB interface of the guest operating system.

The guest will then receive that movement signal and translate it to an actual cursor movement on screen.

This process can take a bit of time, so you often have 2 cursors, the one of the host and the one of the guest. The guest will usually lag behind a little.

Note that the mouse is usually a pointing device that involves relative motion. Some hypervisors support using a virtual tablet as the pointing device, because those support absolute positioning. This can reduce the lag usually observed.

enter image description here

When installing the integration package, a special device driver is installed in the guest operating system. This driver is able to communicate with the hypervisor more directly. How exactly the communication is implemented is vendor-specific. The details shouldn't be relevant to answer the gist of your question though.

Through this new communication path, the hypervisor can directly pass any cursor movements as they happen directly into the driver on the guest. There is no need to first translate back to a more generic USB interface level.

Shared folders

In the case of accessing file system resources on the host, you would usually have to go the same path you would go when sharing files with any other machine on your network. You would create a shared folder, set up access permissions and then access that folder on the guest and perform your file transfers.

When you install the integration package, the hypervisor can emulate a storage device on the network that exposes resources which you can see as shared folders in your guest.

This is possible because the integration package again can install a driver that communicates with the hypervisor directly. File transfers will simply pass through Virtual PC to the driver in the guest instead of using the whole network stack.


Many other integration features exist, especially in other hypervisors. You'll often find features like shared clipboard. The basis for these features is usually the same as described above. The hypervisor establishes a direct data exchange channel through a dedicated driver in the guest operating system.

The hypervisor usually operates on a hardware level, the drivers allow it to also operate on the operating system level.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.