So difficult to change the HAL on Windows 2003 Server R2

October 2, 2007 at 12:19 am (Technology) (, , )

I run several Windows Server 2003 machines in a virtualization cluster called Virtual Iron. For a while VirtualIron could only support uni-processor virtual Windows machines. So all of my currently running machines were installed on uni-processor hardware.

Recently, VirtualIron released the much awaited version 4. One of the many new features of this version, was that you can now create multi-processor Windows guests. Today, I decided to change one of my guests to have two processors. I then restarted the machine, excited to see it run with double the processing power that it had before. However, there was a problem…

Once the machine came back up and I logged in, I found that it still only saw one processor. This can be verified by checking this address in the registry:
\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\NUMBER_OF_PROCESSORS

After doing  some research and checking in with VirtualIron tech support, it was determined that the Windows system was using a uni-processor HAL (Hardware Abstraction Layer).  You can find some information on the HAL hereSometimes you can manually switch the HAL from single to multiprocessor.  It is as simple as changing a device driver in device manager.  However, when I went to change it, I noticed that it would not give me any other HAL options to choose from.  I am still researching why this is.  However, so far it looks as though it may have been caused by installing R2 on the system.

Arg…so difficult to get Windows 2003 Server to recognize multiple processors.  Had this box been Linux, I’d simply need to change grub to boot a SMP kernel and reboot.  As a side note, I had to reboot this windows box about three times to try to switch it to multi-processor and it still didn’t recognize them in the end.  Frustrating, to say the least.



  1. madhu said,

    here is another GYAN from Windows guys

  2. Shohattaxia said,

    Great Article , I thought it was phenomenal

    I look forward to more similar postings like this one. Does Your Blog have a newsletter I can subscribe to for anymore information from you?

  3. Me said,

    On Hyper-V it usually requires and 2nd reboot to detect the 2 CPUs. No problems though.

  4. e12 said,

    I use an old ESX 2.5 and Windows 2003 Ent. After second “shut down” it recognised second CPU.

  5. Steve Ireland said,

    VMWare Server 2.0.2 running on Server 2008 R2. Guest in Server Enterprise 2003 R2. Changed guest from 1 CPU to 2. Started up and still saw only one. Shut down guest and powered back on. Guest sees two CPUs now (as of second boot) with no other alterations required.

  6. ingenieurs marocains said,

    هيئة المهندسين التجمعيين – corps des ingenieurs du parti du RNI

    This is my expert

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: