Windows PV Drivers

Paravirtualization aware (PV) device drivers are an important part of HVM guests running under the Xen Project Hypervisor. Citrix has provided a set of PV driver for Windows since the inception of XenServer. These drivers have evolved over the years and the full source code has been made available under a BSD license and are available to the community to modify and build upon. The Windows PV Drivers team at the Xen Project is maintaining and developing these drivers under Xen Project governance.

Architecture, Code, etc.

Project Leader Paul Durrant gives an excellent overview in the following 2015 slide deck, covering the architecture, history, and use of the drivers:


You can find the slide notes on our wiki. You can find a video of an earlier version of the above talk on the Linux Foundation's YouTube channel.

As the Windows PV project was created after the above overview presentation was written, some of what it describes has evolved. For example:

  • The canonical source repositories are now hosted on xenbits, rather than on github
  • The discussion list is now win-pv-devel rather than xs-devel
  • Some interfaces have changed and some new ones were added
  • Interface documentation is available in the relevant source files using doxygen markup. If you run doxygen in the base of a repository using the doxygen.cfg found there then basic documentation for interfaces provided by the drivers will be created
  • It is now possible to build the drivers using (free) Visual Studio Express 2013 and WDK 8.1. See the README files in the repositories for further details.

Releases, Downloads and Roadmap

The team plans to perform regular builds of the drivers and aims to test them using the Microsoft HCK. The team further plans to provide logo-signed builds of the drivers in future commercial Xen offerings. The team may also provide logo-signed drivers via Microsoft's Windows Update mechanism, making them widely available to anyone running Windows under Xen (not just XenServer) without the need to build the drivers themselves. Any other organization is also free to do the same by registering a top level PV device with the Xen Project community (see pci-device-reservations.txt) and logo-signing their driver builds.

The Win PV Drivers are built by a Jenkins server when new patches are pushed into the repo (Development Builds) and can be found hereTo install a driver on your target system, unpack the tarball, then navigate to either the x86 or x64 subdirectory (whichever is appropriate), and execute the copy of dpinst.exe you find there with Administrator privilege. More information can be found here. 

Please sign up and follow the win-pv-devel mailing list for status and development updates.

License

The drivers are available under a simplified 2-clause BSD license. The code can be found in the following repositories on xenbits.xen.org in the pvdrivers/win folder:

xenbus.git
Windows PV Bus Driver
xeniface.git
Windows PV Interface
xennet.git
Windows PV Network Device Driver
xenvbd.git
Windows PV Storage Host Adapter Driver
xenvif.git
Windows PV Network Class Driver