Changing Windows 2003 from uniprocessor to multiprocessor on a virtual machine
Had a situation where a Windows 2003 virtual machine was installed with a single vCPU and I needed to add another vCPU to test a loading issue. Shutting the machine down and adding the second vCPU as normal I noticed that the virtual machine again restarted with task manager only showing 1 processor. Using Google didn’t help very much as the multi processor drivers are meant to be easy to select when needed(using device manager and the item under computer).
Eventually I found this site http://theether.net/kb/100092 and this helped.
Basically download the devcon.exe application from http://support.microsoft.com/?id=311272
Then run the following commands from the folder that the devcon.exe application is.
SET HAL=ACPIAPIC_MP devcon.exe sethwid @ROOT\PCI_HAL\0000 := !E_ISA_UP !ACPIPIC_UP !ACPIAPIC_UP !ACPIAPIC_MP !MPS_UP !MPS_MP !SGI_MPS_MP !SYSPRO_MP !SGI_MPS_MP devcon.exe sethwid @ROOT\ACPI_HAL\0000 := !E_ISA_UP !ACPIPIC_UP !ACPIAPIC_UP !ACPIAPIC_MP !MPS_UP !MPS_MP !SGI_MPS_MP !SYSPRO_MP !SGI_MPS_MP devcon.exe sethwid @ROOT\PCI_HAL\0000 := +%HAL% devcon.exe sethwid @ROOT\ACPI_HAL\0000 := +%HAL% devcon.exe update %windir%\inf\hal.inf %HAL% devcon.exe ReScan
Shutdown and restart the virtual machine and the second processor will show up in task manager.