# Virtual PC

Virtual PC is a discontinued x86 emulator software for Microsoft Windows hosts and PowerPC-based Mac hosts. It was created by Connectix in 1997 and acquired by Microsoft in 2003, after which the program was renamed Microsoft Virtual PC. In July 2006, Microsoft released the Windows version free of charge. The Mac version was discontinued following the transition to Intel processors that same year.
In 2009, Microsoft released Windows Virtual PC, which is only compatible with Windows 7 hosts, and is the technical foundation for the latter's Windows XP Mode. Windows Virtual PC does not officially support MS-DOS or operating systems older than Windows XP Professional SP3 as guests. Virtual PC was discontinued in 2011 in favour of Hyper-V.

## History and versions

Connectix Virtual PC, Microsoft Virtual PC 2004, Microsoft Virtual PC 2007, and Windows Virtual PC are successive versions of the same software. Versions of Virtual PC by Microsoft runs on several versions of Windows, beginning with Windows 2000 in Virtual PC 2004 and later Windows XP in Virtual PC 2007 onwards. These older versions were still available and support operating systems older than Windows XP. Windows Virtual PC only runs on Windows 7 and only supports versions of Windows beginning with Windows XP. Starting in Windows 8, Microsoft replaced Virtual PC with Hyper-V.

### Virtual PC by Connectix

Virtual PC was originally developed as a Macintosh application for System 7.5 and released by Connectix in June 1997. The first version of Virtual PC designed for Windows-based systems, version 4.0, was released in June 2001. Virtual PC 4 was the first version with expandable drive images.
Connectix sold versions of Virtual PC bundled with a variety of guest operating systems, including Windows, OS/2, and Red Hat Linux. As virtualization's importance to enterprise users became clear, Microsoft took interest in the sector and acquired Virtual PC and Virtual Server (unreleased at the time) from Connectix in February 2003.
Under agreement with Connectix, Innotek GmbH (makers of VirtualBox, now part of Oracle) ported version 5.0 to run on an OS/2 host. This version also included guest extensions (VM additions) for OS/2 guests, which could run on Windows, OS/2 or Mac OS X hosts using Virtual PC versions 5, 6 or 7. A new version of the guest extensions was later included with Microsoft's Virtual PC 2004.

### Microsoft Virtual PC

On July 12, 2006, Microsoft released Virtual PC 2004 SP1 for Windows free of charge, however the Mac version remained a paid software. The equivalent version for Mac, version 7, was the final version of Virtual PC for Mac. It ran on Mac OS X 10.2.8 or later for PowerPC and was a proprietary commercial software product.
Virtual PC 2007 was released only for the Windows platform, with public beta testing beginning October 11, 2006, and production release on February 19, 2007. It added support for hardware virtualization, "undo disks", transfer statistic monitor for disk and network, and viewing virtual machines on multiple monitors and support for Windows Vista as both host and guest. The Windows Aero interface is disabled on Windows Vista guests due to limitations of the emulated video hardware; however, Aero effects can be rendered by connecting to the guest via Remote Desktop Services from an Aero-enabled Windows Vista host, provided that the guest is running Windows Vista Business or a higher edition. It initially did not support home editions of Windows as host OSes such as Windows XP Home Edition, Windows Vista Home Basic and Home Premium, however a hotfix for Virtual PC 2007 SP1 issued on February 20, 2009 (see below) rectified this. Windows XP Starter, Windows XP Media Center Edition and Windows Vista Starter is not supported on Virtual PC 2007, however the former and the latter are still supported as a guest OS. Support for Windows 2000 Professional as a host OS was dropped in Virtual PC 2007 and will not install at all on Windows 2000 hosts, however it is still supported as a guest OS.
"Undo disks" make it possible to revert virtual machines' state to an earlier point by storing changes into a separate .vud file since the last save to the main .vhd file, which can be used for experimenting. The VHD file acts as a snapshot. The undo disk file (.vud) incrementally stores changes made by the virtual machine compared to the main Virtual hard disk drive (VHD) image, which can be applied or discarded by the user. If deactivated, changes are directly written to the VHD file.
On May 15, 2008, Microsoft released Virtual PC 2007 Service Pack 1, which added support for both Windows XP SP3, Windows Vista SP1 and Windows 7 as guest and host OSes, as well as Windows Server 2008 Standard as a guest OS. A hotfix rollup for Virtual PC 2007 SP1, released February 20, 2009, solved networking issues and enhanced the maximum screen resolution to 2048×1920 (32-bit), enabling 16:9 resolutions such as 1920×1080. It also added official support for Windows XP Home Edition, Windows Vista Home Basic and Home Premium as both guest and host OSes. A security update was released on July 14, 2009 to address an elevation of privilege vulnerability in guest operating systems.
Microsoft Virtual PC (2004 and 2007) does not work at all on Windows 10 64-bit, and even on 32-bit platforms lack internet connectivity due to the lack of the VPC driver. This also impacts Windows Mobile emulators.
Release dates of Microsoft Virtual PC 2007 :
| Date | Version | Description |
| 2006-10-11 | 6.0.122 | Beta |
| 2007-01-02 | 6.0.142 | Release Candidate 1 |
| 2007-02-22 | 6.0.156 | Release to Manufacturing |
| 2008-05-15 | 6.0.192 | Service Pack 1 |
| 2009-02-20 | 6.0.210 | Update |
| 2009-07-14 | — | Security Update MS09-33 |

### Windows Virtual PC

Windows Virtual PC entered public beta testing on April 30, 2009, and was released alongside Windows 7 on July 22, 2009. Windows Virtual PC is available free of charge for certain editions of Windows 7, either pre-installed by OEMs or via download from the Microsoft website. Unlike its predecessors, it supports only Windows 7 host operating systems. It originally required hardware virtualization support but on March 19, 2010, Microsoft released an update to Microsoft Virtual PC which allows it to run on PCs without hardware support.

#### New features

New features include:
* USB support and redirection – connect peripherals such as flash drives and digital cameras, and print from the guest to host OS printers. However, USB isochronous transfer mode is not supported Other methods involve simply just treating an active drive letter from a USB flash drive as a virtual hard drive.
* Seamless application publishing and launching – run Windows XP Mode applications directly from the Windows 7 desktop
* Support for multithreading – run multiple virtual machines concurrently, each in its own thread for improved stability and performance
* Smart card redirection – use smart cards connected to the host
* Integration with Windows Explorer – manage all VMs from a single Explorer folder (%USERPROFILE%\Virtual Machines)

#### Removed features

* The Virtual Machine console is replaced by an integrated Virtual Machines shell folder. Several options from the console have been removed such as Restore at start, CPU time performance settings, muting sound in inactive virtual machines, full-screen resolution related options, configuring the host key, mouse capture options and settings for requiring administrator permissions.
* Official guest support for operating systems earlier than Windows XP Professional
* Drag-and-drop file sharing between the guest and the host
* Direct sharing of folders between host and guest operating system (Only volumes may be shared between operating systems)
* Ability to commit changes in undo disks upon turning off virtual machines (Doing so is now only possible through virtual machine Settings dialog box)
* Ability to use physical and virtual Parallel ports
* User interface controls for using virtual floppy disks (Virtual floppy disk functionality, however, is still supported and may be accessed using a script)
* Virtual PC additions for guest operating systems no longer supported have been removed. However, installing Virtual Machine Additions from an older Microsoft virtualization product works for some guest OSes.
* Properties of the virtual machine, like guest OS, processor, processor features, video mode, video RAM, code cache, IDE controller reads and writes, Ethernet reads and writes, video frame rate and command line options can no longer be viewed.

#### System requirements

System requirements for Windows Virtual PC:
* Computer running Windows 7 (all editions except Starter)
* 15 GB of hard disk space per virtual Windows environment
* Optional: if the processor supports hardware-assisted virtualization technology such as AMD-V or Intel-VT, it will be used. Before March 19, 2010, such a processor was mandatory.

## Windows XP Mode

Windows XP Mode (XPM) is a virtual machine package for Windows Virtual PC containing a pre-installed, licensed copy of Windows XP Professional with Service Pack 3 as its guest OS. Previously, both the CPU and motherboard of the host had to support hardware virtualization, but an update in early 2010 eliminated this requirement. Pre-installed integration components allow applications running within the virtualized environment to appear as if running directly on the host, sharing the native desktop and start menu of Windows 7 as well as participating in file type associations. Windows XP Mode applications run in a Terminal Services session in the virtualized Windows XP, and are accessed via Remote Desktop Protocol by a client running on the Windows 7 host.
Applications running in Windows XP Mode do not have compatibility issues, as they are actually running inside a Windows XP virtual machine and redirected using RDP to the Windows 7 host. Windows XP Mode may be used to run 16-bit applications; it includes NTVDM, however it is impossible to run 16-bit applications that require hardware acceleration, as Windows Virtual PC does not have hardware acceleration for such applications.
Windows XP Mode is available free of charge to users of Windows 7 Professional, Enterprise, and Ultimate. Users of other editions of Windows 7 are not eligible to download and use it. This restriction does not apply to Windows Virtual PC itself.
Windows XP Mode can also be run with VMware Player and VMware Workstation. However, like with Windows Virtual PC itself, VMware products only import Windows XP Mode on Windows 7 Professional, Enterprise, or Ultimate versions in order to adhere with Microsoft licensing requirements.

## Emulated environment

Virtual PC emulates the following environments:
* Intel Pentium II (32-bit) processor (but virtualizes the host processor on Windows versions) with an Intel 440BX chipset (with PIIX4E southbridge).
* Standard SVGA VESA graphics card (S3 Trio32 PCI with 4 MB video RAM, adjustable in later versions up to 16 MB by manually editing a virtual machine's settings file).
* System BIOS from American Megatrends (AMI).
* Creative Labs Sound Blaster 16 ISA PnP. (When Windows Vista is installed as both the host (main) and guest (virtual) operating systems, settings are synchronized with the host and audio configuration is not required.)
* DEC 21041 (DEC 21140 in newer versions) Ethernet network card.
* Programs using undocumented features of hardware, exotic timings, or unsupported opcodes may not work.
Implementation:
* The Macintosh version of Virtual PC uses dynamic recompilation to translate the x86 code used by PCs into equivalent PowerPC code for Macs.
* The Windows version of Virtual PC also uses dynamic recompilation, but only to translate x86 kernel mode and real mode code into x86 user mode code; original user mode and virtual 8086 mode code run natively.
* Guest call traps are used, especially for guest extensions, to accelerate emulation or offer additional features, such as integration with the host environment.
* Virtual PC and Virtual Server encapsulate virtual hard disks in the Virtual Hard Disk (VHD) file format, for which Microsoft has made all documentation available under the Open Specification Promise.
Virtual PC 4 requires Mac OS 8.5 or later on a G3 or G4 processor, but running Windows Me, Windows 2000 or Red Hat Linux requires Mac OS 9.0 or later. Virtual PC 5 requires Mac OS 9.1 or newer or Mac OS X 10.1 or later. For USB support, Mac OS X is recommended. To run Virtual PC 5 in Mac OS X, a 400 MHz or faster processor is required.
Earlier versions of Virtual PC supported the following features: (now removed in Microsoft Virtual PC 2004, 2007, and Windows Virtual PC):
* Older versions of Virtual PC (v5.0 or earlier) may have the hard disk formatted after creating the Virtual Hard Disk file. Newer versions must partition and format the Virtual Hard Disk file manually.
* A Virtual Switch available in Virtual PC version 4.1 or earlier allows adding multiple network adapters.
* Older operating systems are supported with Virtual Machine additions.
* Older versions of Virtual PC for Macintosh can run on Mac OS 9.2.2 or earlier. Support for System 7.5 was dropped in version 3.

## Virtual machine integration components

Windows Virtual PC may enable guest operating systems running inside virtual machines to interact with their host operating system beyond what is feasible between two physical computers, such as sharing physical hardware components or exchanging data. To do so however, integration components must be installed on the guest operating systems. When no integration component is installed, the only mean of communicating between two machines (either virtual or physical) is through a virtual network interface. Even the mouse cursor can only be controlled by one operating system (either real or virtual) at any given time. However, once the Integration Components are installed on the guest operating systems, the following features are automatically activated:
* Mouse cursor sharing: Mouse cursor can be moved freely between the machines.
* Host-initiated shutdown: Virtual machine can be shut down, restarted or put into standby or hibernation via a set of API functions.
* Time synchronization: The virtual machine's clock will be automatically synchronized with the host operating system's clock.
* Process responsiveness monitoring: Host operating system will be able to detect whether the software on the guest operating system is responsive or hung.
* Dynamic screen resolution: The screen resolution of the guest operating system can be changed by simply resizing the window in which it is running. However, the VM can be configured to allow only standard resolutions.
In addition to features described above, guest operating systems may also take advantage of the following integration features but only when the administrator activates them:
* Audio sharing: Audio played on the guest operating system may be brought to the host operating system and played on it.
* Clipboard sharing: Contents such as text, picture or everything that is cut or copied to Windows Clipboard maybe pasted in other machines.
* Printer sharing: Guest operating systems may print on the host operating system's printer. This feature should not be confused with File and Printer Sharing over an emulated network connection.
* Smart card sharing: Smart cards connected to host operating system may be accessed on guest operating systems.
* File sharing: Windows Virtual PC can also share disk partitions and disk drives of the host operating system with guest operating systems. This includes USB mass storage devices that are connected later.
In Windows Virtual PC, enabling integration features automatically makes the virtual machine user account accessible using Remote Desktop Connection.

## Supported host and guest operating systems

Virtual PC allows multiple guest operating systems to run virtualized on a single physical host. Although a number of popular host and guest operating systems lack official Microsoft support, there are sometimes few, if any, technical obstacles impeding installation. Instead, a configuration may be unsupported due to Microsoft's own licensing restrictions, or a decision to focus testing and support resources elsewhere, especially when production use of a legacy product fades.
A program manager on Microsoft's core virtualization team explains what official support entails:
   With each release of Virtual PC we spend a significant amount of time trying to decide which (guest) operating system should be officially supported. While Virtual PC is capable of running many operating systems, official support for an operating system means that we will test it thoroughly, not ship Virtual PC if an issue exists with that operating system, and provide full support for customers who encounter problems while running these operating systems under Virtual PC.
As a product positioned for desktop use, Virtual PC provides official support for a different set of operating systems than its server-oriented counterpart, Microsoft Virtual Server and the more advanced Hyper-V. While the latter products support a range of server operating systems, Virtual PC 2007 supports only one variety as host and another as guest; its successor, Windows Virtual PC, supports none. And, whereas Virtual Server and Hyper-V have officially supported select Linux guests since 2006 and 2008, respectively, as of 2009, no Microsoft release of Virtual PC has officially supported Linux. Nonetheless, a number of Linux distributions do run successfully in Virtual PC 2007, and can be used with the Virtual Machine Additions from Virtual Server (see below). Lastly, while 64-bit host support was introduced with Virtual PC 2007, no release has been able to virtualize a 64-bit guest; Microsoft has thus far reserved this functionality for Hyper-V, which runs only on 64-bit (x64) editions of Windows Server 2008, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows 8/8.1 Pro and Enterprise, and Windows 10 Pro, Enterprise, and Education.

### Table of supported operating systems

In the following table and notes, "support" refers to official Microsoft support, as described above.
| Operating system version | Virtual PC 2004 | Virtual PC 2004 | Virtual PC 2004 | Virtual PC 2007 | Virtual PC 2007 | Virtual PC 2007 | Windows Virtual PC | Windows Virtual PC | Windows Virtual PC | Windows Virtual PC |
| Operating system version | Host | Host | Guest | Host | Host | Guest | Host | Host | Guest |
| Operating system version | 32-bit | 64-bit | 32-bit | 32-bit | 64-bit | 32-bit | 32-bit | 64-bit | 32-bit |
| Windows 11 | — | No | — | — | No | — | — | No | — |
| Windows 10 | No | No | No | No | No | No | No | No | No |
| Windows 8.1 | No | No | No | No | No | No | No | No | No |
| Windows 8 | No | No | No | No | No | No | No | No | No |
| Windows 7 Ultimate | No | No | No | No | No | No | Yes | Yes | Yes |
| Windows 7 Enterprise | No | No | No | No | No | No | Yes | Yes | Yes |
| Windows 7 Professional | No | No | No | No | No | No | Yes | Yes | Yes |
| Windows 7 Home Premium | No | No | No | No | No | No | Yes | Yes | Yes |
| Windows 7 Home Basic | No | No | No | No | No | No | Yes | Yes | Yes |
| Windows 7 Starter | No | — | No | No | — | No | No | — | No |
| Windows Server 2008 Standard | No | No | No | No | No | Yes | No | No | No |
| Windows Vista Ultimate | No | No | No | Yes | Yes | Yes | No | No | Yes |
| Windows Vista Enterprise | No | No | No | Yes | Yes | Yes | No | No | Yes |
| Windows Vista Business | No | No | No | Yes | Yes | Yes | No | No | Yes |
| Windows Vista Home Premium | No | No | No | Yes | Yes | Yes | No | No | No |
| Windows Vista Home Basic | No | No | No | Yes | Yes | Yes | No | No | No |
| Windows Vista Starter | No | — | No | No | — | Yes | No | — | No |
| Windows Server 2003 Standard | Yes | No | Yes | Yes | Yes | Yes | No | No | No |
| Windows XP Professional | Yes | No | Yes | Yes | Yes | Yes | No | No | Yes |
| Windows XP Tablet PC Edition | Yes | — | Yes | Yes | — | Yes | No | — | No |
| Windows XP Media Center Edition | No | — | No | No | — | No | No | — | No |
| Windows XP Home Edition | No | — | Yes | Yes | — | Yes | No | — | No |
| Windows XP Starter Edition | No | — | Yes | No | — | Yes | No | — | No |
| Windows 2000 Server | No | — | Yes | No | — | Yes | No | — | No |
| Windows 2000 Professional | Yes | — | Yes | No | — | Yes | No | — | No |
| Windows Me | No | — | Yes | No | — | No | No | — | No |
| Windows 98 Second Edition | No | — | Yes | No | — | Yes | No | — | No |
| Windows 98 (original release) | No | — | Yes | No | — | No | No | — | No |
| Windows 95 | No | — | Yes | No | — | No | No | — | No |
| Windows NT 4.0 Workstation | No | — | Yes | No | — | No | No | — | No |
| Windows NT 3.51 Workstation | No | — | No | No | — | No | No | — | No |
| Windows NT 3.1 | NT 3.5 | No | — | No | No | — | No | No | — | No |
| IBM OS/2 (select editions) | No | — | Yes | No | — | Yes | No | — | No |
| Operating system version | 16-bit | 16-bit | 16-bit | 16-bit | 16-bit | 16-bit | 16-bit | 16-bit | 16-bit | 16-bit |
| Windows 3.1 | No | No | No | No | No | No | No | No | No | No |
| Windows 3.0 | No | No | No | No | No | No | No | No | No | No |
| MS-DOS 6.22 | No | No | Yes | No | No | No | No | No | No | No |
LEGEND :
| Microsoft support ||
| Yes | Supported |
| No | Not supported |
| — | Version nonexistent |
Notes – details of Microsoft support
* $^1$ $^2$ Supported editions: OS/2 Warp Version 4 Fix Pack 15, OS/2 Warp Convenience Pack 1, and OS/2 Warp Convenience Pack 2.
* $^1$ Support added in Virtual PC 2004 Service Pack 1 (SP1) for Windows Server 2003, Standard Edition as a host.
* $^1$ $^2$ $^3$ $^4$ $^5$ For Virtual PC 2007, Microsoft designated the following legacy operating systems "compatible", but discontinued official support: MS-DOS 6.22, Windows NT 4.0 Workstation, Windows 95, the original release of Windows 98 and Windows Me.
* $^1$ $^2$ $^3$ $^4$ For Windows Vista guests in Virtual PC 2007, the Windows Aero graphical user interface is disabled due to limitations of the emulated S3 Trio graphics card; the interface falls back to the Vista Home Basic theme. However, Aero effects can be rendered by connecting to the guest via Remote Desktop Connection from an Aero-enabled host.
* $^1$ Support added in Virtual PC 2007 Service Pack 1 (SP1) for Windows Server 2008 Standard as a guest.
* $^1$ $^2$ Microsoft's January 2008 EULA supplement for Windows Vista lifted restrictions barring installation of Vista Home Basic and Home Premium as guest operating systems.
* $^1$ $^2$ $^3$ January 2008 EULA supplement for Windows Vista lifted restrictions barring use of BitLocker and Microsoft-DRM-protected content within virtualized environments.
* $^1$ $^2$ $^3$ $^4$ $^5$ $^6$ Support added in a Virtual PC 2007 Service Pack 1 (SP1) hotfix rollup, dated February 20, 2009, for Windows XP Home as both host and guest, and for all Home editions of Windows Vista as hosts.
* $^1$ $^2$ $^3$ $^4$ The pre-configured XP Mode of Windows Virtual PC is restricted to Windows 7 Professional, Enterprise, and Ultimate hosts. However, an equivalent environment can be configured manually by installing Windows XP SP3 as a guest (requires an XP license and installation media or files) and applying an integration components update (available for download from Microsoft) to enable seamless mode and other Windows 7 integration features.
* $^^$ The integration components enabling seamless mode and other features of Windows Virtual PC support only the following guests: Windows XP Pro Service Pack 3 (SP3); Windows Vista Business SP1, Enterprise SP1, and Ultimate SP1; and Windows 7 Professional, Enterprise, and Ultimate.
Notes – not supported installations
* $^1$ Virtual PC 2007 does not include Virtual Machine Additions for MS-DOS as a self installing disk image (installed using a batch file), however the files are included in the Virtual Machine Additions ISO image file (typically found in the 'Program Files' folder where Virtual PC was installed) and can be extracted by various means (a number of file compression software packages support extracting files from ISO image files) for manual installation, also the DOS additions from Virtual PC 2004 can be used without problem as can the DOS additions from Virtual Server 2005.
* $^1$ The Virtual Machine Additions included with Virtual PC 2007 will not install on Windows 95 guests, but the additions from Virtual PC 2004 can be used.
* $^1$ In informal testing, Microsoft virtualization manager Ben Armstrong found XP Media Center 2004 "distorted and unusable" under Virtual PC 2004, but Media Center 2005 worked "beautifully", sans TV features.
* $^1$ $^2$ $^3$ MSDN blogs reported that pre-release versions of Windows 7, similar to the released Ultimate edition, run successfully as both host and guest operating systems on Virtual PC 2007 Service Pack 1 (SP1). Integration features provided by Virtual Machine Additions function normally, but Virtual PC 2007 must be SP1 or later. See "Windows 7 on Virtual PC on Windows 7" for more caveats.
* $^1$ $^2$ Although Windows NT 3.1 and NT 3.5 refuse to install on newer processors (NT 3.51 fixes this), it is possible to modify files on the install CD to allow install.

### Linux guests

Installing a Linux-based guest environment in Virtual PC is possible. RedHat and SuSe Linux guests are supported. Linux additions are supported in Microsoft Virtual Server, and these additions should also work in Virtual PC.
Some Linux distributions must be installed in text mode, as they do not support Microsoft Virtual PC's emulated graphics chip. Ubuntu 8.10 "Intrepid Ibex" must be installed in SafeMode, but does not require other changes.
Some websites specialize in listing operating systems that run successfully as Virtual PC guests, to help users avoid issues when installing Linux distributions or other operating systems lacking official Microsoft support.

### Intel-based Mac support

Microsoft announced on August 7, 2006, that Virtual PC for Mac would not be ported to the Intel Mac platform. Microsoft stated, "Alternative solutions offered by Apple and other vendors, combined with a fully packaged retail copy of Windows, will satisfy this need." Similar products available or announced at the time were Parallels Desktop and VMware Fusion.