Figure 2.2 Task Manager showing a single vmms.exe instance and many vmwp.exe
instances
Components also run in kernel mode, such as the virtual machine bus (VMBus),
which enables communication between virtual service providers (VSPs) that allow
support for non-CPU and memory hardware such as storage and networking. Each
VSP corresponds to numerous virtual service clients (VSCs) running in the child
partitions; for example, we have a virtual service provider and consumer for a
network, a pair for storage, and so on. When a child partition wishes to access
hardware resources that are not CPU or memory, its VSC makes a request to the VSP
hosted in the VMBus on the parent partition, and the VSP performs the actual
communication to the physical hardware.
This is shown in Figure 2.3, which is an updated version of Figure 2.1 to show more
clearly how the various types of hardware resources are serviced. The VMBus is not
shared between all of the child partitions, and there is one channel between each child
and the parent, so no communication or data can be seen by other child partitions
running on the same server. This VMBus does not incur any significant performance
penalty, even though child partitions wanting to access hardware now essentially
communicate via the VSC to a VSP on the VMBus hosted on the parent partition,
which communicates with the hardware. This is because the VMBus is a pure memory
bus running at a kernel level, so there is practically no latency introduced. By using
this model, Microsoft keeps the hypervisor small and secure while still allowing full
hardware support for the breadth of the Microsoft hardware ecosystem.
Figure 2.3 Hyper-V VMBus architecture
The parent partition hosts all of the VM support components that are not part of the
hypervisor. If the parent partition reboots or is unavailable, none of the child
partitions are available either. The Hyper-V solution has components that I do not
show in Figure 2.3, to avoid confusion. A virtualization infrastructure driver (VID,
vid.sys) runs in the parent kernel mode and enables management services to the