I just posted this elsewhere on the board, but figured I should start a
new topic.

I've taken a slightly different approach to building my images......

To summarise the problem: Whilst installing WindowsXP from CD, during
that initial stage where it is in DOS it will determine what kind of
HAL to use. The HAL type "Advanced Configuration and Power Interface
(ACPI) PC" is like the lowest common denominator - it works on 99% of
hardware (since power management started being implemented in BIOS).
Higher levels of HAL such as "ACPI Uniprocessor" or "ACPI
Multiprocessor" are more efficient and provide better compatibility
with newer hardware, but they don't work on everything - such as
laptops. I'm yet to find a laptop that uses the "ACPI Uniprocessor"

I build all my XP images on hardware that detects as "ACPI
Uniprocessor". Once the operating system has been installed, I manually
back-rev the HAL driver to "Advanced Configuration and Power Interface
(ACPI) PC". By using that lowest common denominator HAL I've ensured
that my image will work on ALL hardware. By building my image initially
on "ACPI Uniprocessor" hardware and back-reving the driver I've ensured
that the driver is still in the operating system.

The downside of this approach is that whilst "Advanced Configuration
and Power Interface (ACPI) PC" works on everything, it doesn't support
multiple CPU's. As such I've written a VB application that runs on
startup (referenced in the sysprep.inf) that detects through BIOS how
many CPU's are detected, and if more than 1 exists it forces an upgrade
of the HAL driver to "ACPU Multiprocessor".

End result is I have one image, working on all hardware including
laptops, which automatically upgrades itself to support multiple cpu's
should it detect them.