Error restoring a True image backup to a new hardware:
file halmacpi that is required for installation of device multiprocessor ACPI  id:(standard pc) in windows XP professional  can not be found 
SysPrep Guide: Hardware Abstraction Layer (HAL)
Overview
The hardware abstraction layer (HAL) is a kernel level 
driver that provides an interface between the operating system and the 
system architecture. There are several HALs that Windows can use and 
they impact available features and performance depending on which 
systems they are used on. You can find the list below and some comments 
about them. Some of the HALs allow Windows to work on very different 
hardware, but now that x86 is the universal architecture for Windows 
computers the choice for a HAL is simplified a great deal. I will go 
into more detail after you browse through the HALs below. 
                      
 Available Hardware Abstraction Layers (HALs) 
                      
                        
                          
                            | Standard PC DLL: hal.dll
 Kernel: ntoskrnl.exe
 PAE: 
                             ntkrnlpa.exe
 
 | This is the 
most primitive HAL and it supports all computers that are compatible 
with Windows 2000 and Windows XP. It does not support the advanced the 
programmable interrupt controller (APIC) architectures and does not 
provide APCI features including the configuration management and the 
advanced power management. You can use this on any computer, but at the 
cost of performance and features. More than likely you will never use 
this HAL. | 
                            | Standard PC with C-Step i486 | This is a primitive HAL 
that provides support for C-stepping on 486 processors. I am not sure 
what that is, but I am pretty sure it's old and I severely doubt you 
will ever use it. | 
                            | Advanced Configuration and Power Interface (ACPI) PC DLL: halacpi.dll
 Kernel: ntoskrnl.exe
 PAE: ntkrnlpa.exe
 
 | I find that this HAL is the
 best selection for an image that you want to be compatible on as many 
computers as possible. It should be noted that multiprocessor computers 
can use this HAL, however they will only make use of a single processor.
 This HAL can also be used with hyperthreading without any problem, but 
it will effectively disable hyperthreading because it is only designed 
for a single processor system. | 
                            | ACPI Uniprocessor PC DLL: halaacpi.dll
 Kernel: ntoskrnl.exe
 PAE: ntkrnlpa.exe
 | This HAL is designed for 
single processor computers that are not compliant with the 
multiprocessor system specficiations. This HAL will run on computers 
that are fairly new systems, such as all Pentium 4 based systems. 
However, I have found problems with duplicating this HAL onto some older
 Pentium 3 based systems. You can read about the ACPI standards by 
reading this and you can read about the core architecture modules here. | 
                            | ACPI Multiprocessor PC DLL: halmacpi.dll
 Kernel: ntkrnlmp.exe
 PAE: ntkrpamp.exe
 | This HAL is designed for 
multiprocessor computers that are not compliant with the multiprocessor 
system specficiations. It is rumored that you will receive about a 15% 
performance gain from using this HAL over the standard ACPI HAL when you
 have a hyperthreaded system, but I have not tested this yet. You can 
read about the ACPI standards by reading this and you can read about the core architecture modules here. | 
                            | MPS Uniprocessor PC DLL: halapic.dll
 Kernel: ntoskrnl.exe
 PAE: ntkrnlpa.exe
 | This HAL is designed for multiprocessor systems that have a single processor. You can read about the MPS standards by reading this. As far as I know this is only used by older Xeon based systems with a single processor. | 
                            | MPS Multiprocessor PC DLL: halmps.dll
 Kernel: ntkrnlmp.exe
 PAE: ntkrpamp.exe
 | This HAL is designed for multiprocessor systems that have multiple processors. You can read about the MPS standards by reading this. As far as I know this is only used by older Xeon based systems with multiple processors. | 
                            | Compaq SystemPro Multiprocessor or 100% Compatible PC | Designed for Compaq SystemPro multiprocessor systems. You will most likely never use this HAL. | 
 
Choosing a HAL 
[...]
============================
Source 
Control Panel -DEvice Manager -Computer -ACPI Multiprocessor PC -Driver -update driver
Reboot
That should do it to make it a uniprocessor PC again. But I am not sure 
if that cures the sluggish behavior as it may not be the only cause.
------------------
change the acpi in the bios back to disabled/off?
HAL options after Windows XP or Windows Server 2003 Setup
should tell you how to force a reinstall of windows with a differetn hal.
------------------
Another way that may work is to create another hardware profile and get 
it to boot to that at the start, it should then auto detect everything 
and you'll have a backup profile just in case
------------------
by the way, you did try the normal method of going to 
Device Manager -> ACPI multiprocessor PC  and then using the update 
feature (tried selecting your own ?  Advanced -> let me choose...).  
Since that way should work.
-------------------
Windows won't start (I think) if you just delete those files. The 
feature to change the HAL in Device Manager in XP is  deliberately 
disabled by Microsoft - it works for previous versions of Windows but 
not for XP.
See 
troubleshoot HAL from Microsoft. Below you'll find the names of the relevant files for easier access.
You need to replace three files in the system32 folder then restart 
Windows. The best set of files can be found in the cab files from the XP
 redistributable SP2 (yes I know it's big) found at Microsoft. You can 
also use the files (already expanded) found in 
Windows/ServicePackFiles/i386 - this would be best if you have that 
folder and it contains the proper files.
It is still problematic to change these 3 files because they can have 
been updated by regular Windows updates. If you get Windows running 
after you change these 3 files it is best to manually run the Windows 
update process to see if MS will detect if these 3 files need further 
updating.
The article refers to Win2000 but it should apply equally to XP.
Folder winnt/system32 is changed to Windows/system32 for XP.
You can change these filenames from the Recovery Console - at the 
command prompt (at least I think you can). You need to be able to run 
Recovery Console from a Win install CD or have installed Recovery 
Console into Windows. Be sure you can successfully run the Recovery 
Console before you begin. Windows (online) help file has more info on 
how to run it or install it.
To make this easier you need to find the files with your operating copy 
of Windows first and put the files in place in the system32 folder with a
 changed name such as hal.new.dll, you'll be able to find them quicker. 
Be sure you know how to get the files extracted/expanded out of the .cab
 first, either with a built-in extractor such as that in the 7-zip app 
or by using the Windows provided extract/expand utility. I mention this 
because it is possible to end up with an un-expanded copy of the file. 
Check the extracted files with File|Properties in Explorer - good files 
will show the version info.
Just to be safe, copy your existing 3 files and keep them in case this process fails.
An alternative to hunting down the files from the cab files is just to 
find another running version of Windows with the uniprocessor files and 
then just copy them (like on a floppy).
The following is extracted from the url above:
 
2. After you log on to your computer, from the %SystemRoot%\System32 folder of your original Windows 2000 installation,
use the command console to copy and rename the following files as noted in the following lists.
First determine which HAL and kernel files your computer requires by using the following list of supported computer types:
NOTE: Those marked with an asterisk character are Standard computer types (non-ACPI).
(You need only one of the following!)
i386 source file: i386\driver.cab\halmacpi.dll
Computer type: ACPI Multiprocessor PC
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
i386 source file: i386\driver.cab\halaacpi.dll
Computer type: ACPI Uniprocessor PC
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
i386 source file: i386\driver.cab\halacpi.dll
Computer type: Advanced Configuration and Power Interface (ACPI) PC
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
i386 source file: *i386\driver.cab\halsp.dll
Computer type: Compaq SystemPro Multiprocessor or 100% Compatible
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
 
i386 source file: *i386\driver.cab\halapic.dll
Computer type: MPS Uniprocessor PC
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
 
i386 source file: *i386\driver.cab\halmps.dll
Computer type: MPS Multiprocessor PC
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
 
i386 source file: *i386\driver.cab\hal.dll
Computer type: Standard PC
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
 
i386 source file: *i386\driver.cab\halborg.dll
Computer type: SGI mp
Copy to this folder: winnt\System32
Rename to this file name: hal.dll
 
3. As indicated in the following table, copy all the appropriate kernel 
files common for your system (Uniprocessor vs. Multiprocessor)
and the appropriate HAL file based on your computer supported computer type from the Windows 2000 CD-ROM (i386\driver.cab)
or installed service pack to the corresponding folder listed in the table under your original Windows 2000 installation,
and then rename them (if required) to Ntoskrnl.exe and Hal.dll, respectively. 
Common Multiprocessor kernel files Copy to the following directory Rename to the following filename 
----
i386\driver.cab\ntkrnlmp.exe winnt\System32 ntoskrnl.exe 
i386\driver.cab\ntkrpamp.exe winnt\System32 ntkrnlpa.exe 
(following 4 files are the same - don't need to copy )
(i386\driver.cab\kernel32.dll winnt\System32 kernel32.dll )
(i386\driver.cab\ntdll.dll winnt\System32 ntdll.dll )
(i386\driver.cab\win32k.sys winnt\System32\drivers win32k.sys )
(i386\driver.cab\winsrv.dll winnt\System32 winsrv.dll )
Common Uniprocessor kernel files Copy to the following directory Rename to the following filename 
---
i386\driver.cab\ntoskrnl.exe winnt\System32 ntoskrnl.exe 
i386\driver.cab\ntkrnlpa.exe winnt\System32 ntkrnlpa.exe 
(following 4 files are the same - don't need to copy )
(i386\driver.cab\kernel32.dll winnt\System32 kernel32.dll )
(i386\driver.cab\ntdll.dll winnt\System32 ntdll.dll )
(i386\driver.cab\win32k.sys winnt\System32 win32k.sys )
(i386\driver.cab\winsrv.dll )
___________________________
So, for computer type: ACPI Uniprocessor PC
i386\driver.cab\halaacpi.dll -> windows\System32\hal.dll
i386\driver.cab\ntoskrnl.exe -> windows\System32 ntoskrnl.exe 
i386\driver.cab\ntkrnlpa.exe -> windows\System32 ntkrnlpa.exe 
The additional 4 files may or may not need to match, you may need to 
extract them also from the SP2 cab file. This is usually unnecessary.
Good luck!  
---------------------------
I think you are suggesting that Windows XP should detect that the CPU is
 now a single processor and then install and use the proper HAL.
I'll repeat: that function (reinstalling a different HAL) is 
deliberately disabled in XP. The only way to change the HAL is by 
manually installing the proper fileset or by wiping the disk and doing a
 full install. WinXP will never change the currently installed HAL no 
matter what CPU is detected and no matter what the BIOS says.
The Compaq BIOS may well be dumbed down and may be partly what has led 
to the current problem. While the motherboard may have been originally 
intended to support a multiprocessor, Compaq may have deliberately 
disabled that feature on the board supplied with that particular 
computer package in order to save costs.
Any XP install CD can be used to install XP. All that changes is the XP 
key and the key is not recorded on the disk. You can borrow any XP 
install CD and use it with your genuine XP key. You can use a 'burned' 
CD copy as well as an original CD. You do not violate your license by 
using a different XP install CD no matter the source.
------------------------------
Then how come I can select different HAL's if I do it on my Windows XP computer ?
And in the link I gave some posts up 
http://boinc.bakerlab.org/forum_thread.php?id=2264#26457 it says 
WindowsXP can (a limited choice in WinXP as opposed to any in Win2K)
You cannot switch between ACPI and non-ACPI in device manager in WinXP. 
Extracted from the MS post:
4. On Windows XP and later versions, the ACPI Uniprocessor HAL and the 
MPS Uniprocessor HAL recognize the existence of more than one processor 
and report the MP ID. Plug and Play detects that the computer devnode's 
hardware ID list has changed and moves the devnode back through the 
"found new hardware" detection process. Therefore, when you add a second
 processor, the MP files (HAL and kernels) are automatically installed, 
and you do not have to manually update the driver in Device Manager
This has just not been my experience - XP SP2 will not do what item #4 
says that it will. I believe that the article applies to (original 
release) vanilla XP and that XP SP2 changes this behavior - such that 
SP2 disables that feature more or less completely. I can testify that 
when I changed my processor from single to dual, XP SP2 did NOT change 
the HAL automatically nor was there an option to do so in Device 
Manager.
References to 'forcing' a particular HAL are only relevant when 
installing a fresh copy of Windows and possibly relevant when doing a 
'repair' install.
There may still exist the ability to change the HAL if you started with a
 current 'Standard PC' HAL, although I can't verify that.
----------------- 
You do need WinXP SP2 for dual core's to work properly.
-----------------
It a very current KB (Jul 2006) and is in refrence to all WinXP and Win2003.
Also I believe Bad Penguins initail try at running the X2 auto changed. 
 It also auto detect for many other people.  You do need WinXP SP2 for 
dual core's to work properly.
Though we are onto single cores now :-)
Bad Penguin, on the off chance you could try (if not already) putting AMD latest Sempron driver on 
http://www.amd.com/us-en/assets/content_type/utilities/amdcpusetup.exe from 
http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_871_11686,00.html
The the other way is to setup boot.ini to load with a different HAL(used
 for testing normaly) though often used for this purpose:
 
http://www.nforcershq.com/forum/1-vt12269.html?postdays=0&postorder=asc&&start=0 
============================
SysPrep Guide: Hardware Abstraction Layer (HAL)
============================
                               
     
amdcpusetup.exe    is  known as 
Microsoft® Windows® Operating System and it  is developed by 
MS
 .============================ 
Microsoft Knowledge Base Article - 
Q309283 
http://support.microsoft.com/?kbid=309283
El Administrador de dispositivos de Windows XP y la lista del 
Administrador de dispositivos de Windows Server 2003 limitaban las 
opciones para cambiar el tipo de HAL al hacer clic en Actualizar controlador.
 El Administrador de dispositivos de Microsoft Windows 2000 le permite 
seleccionar cualquier tipo de HAL. Si selecciona una HAL incorrecta, es 
posible que no pueda iniciar Windows 2000 o que tenga otros problemas. 
Aunque las selecciones son limitadas, sólo debe cambiar la HAL si sabe 
con seguridad que la HAL seleccionada funciona en su sistema. Las 
opciones que se presentan aquí se sabe que son compatibles con la 
mayoría de los sistemas. No obstante, algunos sistemas pueden 
experimentar problemas.
Al instalar las siguientes HAL en un 
equipo basado en Windows XP o en Windows Server 2003, aparecen las 
siguientes opciones de HAL del Administrador de dispositivos:
"PC estándar ", HAL PIC no compatible con ACPI (Hal.dll)
PC estándar
"Equipo monoprocesador MPS", HAL UP APIC no compatible con ACPI (Halapic.dll)
PC estándar
Equipo monoprocesador MPS
Multiprocesador MPS
"Equipo multiprocesador MPS", HAL MP APIC no compatible con ACPI (Halmps.dll)
PC estándar
Multiprocesador MPS
"Interfaz avanzada de configuración y energía (ACPI)", HAL PIC ACPI (Halacpi.dll)
PC estándar
Equipo con Interfaz avanzada de configuración y energía (ACPI)
"Monoprocesador ACPI de PC", HAL UP APIC ACPI (Halaacpi.dll)
PC estándar
Equipo con Interfaz avanzada de configuración y energía (ACPI)
Monoprocesador ACPI
Multiprocesador ACPI
"Equipo multiprocesador ACPI", HAL MP APIC ACPI (Halmacpi.dll)
PC estándar
Equipo con Interfaz avanzada de configuración y energía (ACPI)
Multiprocesador ACPI
Multiprocesador MPS
Notas
- Un
 síntoma común al implementar la imagen incorrecta en un equipo es que 
la imagen de Sysprep deja de responder al reiniciar o informa del 
mensaje de error siguiente:
    
- Si
 se fuerza una HAL incorrecta durante la instalación o al utilizar una 
imagen de preparación del sistema (Sysprep), sólo podrá ver la lista 
correcta de HAL si realiza una nueva instalación de Windows XP o de 
Windows Server 2003. No puede cambiar a una HAL que no aparezca en el 
Administrador de dispositivos.
- El Administrador de dispositivos 
no permite el cambio de una HAL no compatible con ACPI a una HAL ACPI. 
Debe llevar a cabo una instalación nueva de Windows XP o de Windows 
Server 2003 para realizar este tipo de cambio. Cambie sólo de una HAL 
ACPI a una HAL no compatible con ACPI para solucionar problemas. 
- En
 Windows XP y en versiones posteriores, la HAL monoprocesador ACPI y la 
HAL monoprocesador MPS reconocen la existencia de más de un procesador e
 informan del Id. del MP. Plug and Play detecta que la lista de 
identificadores de hardware de devnode ha cambiado y mueve el devnode 
hacia atrás a través del proceso de detección "Nuevo hardware 
encontrado". Por tanto, al agregar un segundo procesador, los archivos 
de MP (HAL y núcleos) se instalan automáticamente y no es necesario 
actualizar el controlador manualmente en el Administrador de 
dispositivos.
- Microsoft no admite la ejecución de una HAL 
distinta de la que instala normalmente el programa de instalación de 
Windows en el equipo. Por ejemplo, no se admite la ejecución de una HAL 
PIC en un equipo APIC. Aunque puede parecer que esta configuración 
funciona, Microsoft no la ha probado y es posible que tenga problemas de
 rendimiento e interrupciones. Microsoft tampoco proporciona soporte 
técnico para intercambiar los archivos que usa la HAL con el fin de 
cambiar manualmente los tipos de HAL.
- Microsoft recomienda que sólo se utilice el intercambio de HAL para solucionar problemas de hardware o de otro tipo.
- Al
 crear una imagen Sysprep, la imagen debe contener el tipo de HAL 
correcto para el equipo de destino. En la lista siguiente se describen 
los equipos en los que se puede implementar una imagen Sysprep concreta 
según el tipo de HAL del equipo de origen:
    
- Puede implementar una imagen Sysprep creada en un equipo que utiliza PC estándar, HAL PIC no compatible con ACPI (Hal.dll) en un equipo que utilice los tipos de HAL siguientes: 
      
- PC estándar, HAL PIC no compatible con ACPI (Hal.dll)
 
- Puede implementar una imagen Sysprep creada en un equipo que utiliza Equipo con Interfaz avanzada de configuración y energía (ACPI), HAL PIC ACPI (Halacpi.dll) en un equipo que utilice los tipos de HAL siguientes: 
      
- Equipo con Interfaz avanzada de configuración y energía (ACPI), HAL PIC ACPI (Halacpi.dll)
 
- Puede implementar una imagen Sysprep creada en un equipo que utiliza Equipo monoprocesador MPS, HAL UP APIC no compatible con ACPI (Halapic.dll) en un equipo que utilice los tipos de HAL siguientes:
      
- Equipo monoprocesador MPS, HAL UP APIC no compatible con ACPI (Halapic.dll)
- Equipo multiprocesador MPS, HAL MP APIC no compatible con ACPI (Halmps.dll)
 
- Puede implementar una imagen Sysprep creada en un equipo que utiliza Equipo multiprocesador MPS, HAL MP APIC no compatible con ACPI (Halmps.dll) en un equipo que utilice los tipos de HAL siguientes:
      
- Equipo multiprocesador MPS, HAL MP APIC no compatible con ACPI (Halmps.dll)
- Equipo monoprocesador MPS, HAL UP APIC no compatible con ACPI (Halapic.dll)
 
- Puede implementar una imagen Sysprep creada en un equipo que utiliza Monoprocesador ACPI de PC, HAL UP APIC ACPI (Halaacpi.dll) en un equipo que utilice los tipos de HAL siguientes:
      
- Monoprocesador ACPI de PC, HAL UP APIC ACPI (Halaacpi.dll)
- Equipo multiprocesador ACPI, HAL MP APIC ACPI (Halmacpi.dll)
 
- Puede implementar una imagen Sysprep creada en un equipo que utiliza Equipo multiprocesador ACPI, HAL MP APIC ACPI (Halmacpi.dll) en un equipo que utilice los tipos de HAL siguientes:
      
- Equipo multiprocesador ACPI, HAL MP APIC ACPI (Halmacpi.dll)
- Monoprocesador ACPI de PC, HAL UP APIC ACPI (Halaacpi.dll)
 
 
Nota:
 actualmente, las opciones del Administrador de dispositivos no muestran
 una versión de APIC de la HAL al cambiar la HAL en un sistema APIC. 
Aunque la HAL PIC que está instalada puede funcionar, puede seleccionar 
la versión de APIC preferida después de instalar una revisión para los 
equipos que ejecuten Windows Server 2003 con el Service Pack 1.
Para obtener más información acerca de la revisión para el Service Pack 1
 de Windows Server 2003, haga clic en el número de artículo siguiente 
para verlo en Microsoft Knowledge Base:
923425 
                            
 No puede bajar de nivel a una capa de abstracción de hardware que esté 
configurada para utilizar una controladora programable avanzada de 
interrupciones de un solo procesador cuando intenta cambiar el tipo de 
equipo utilizando el Administrador de dispositivos en Windows Server 
2003
 
299340 
                            
 Cómo forzar una Capa de abstracción de hardware durante una actualización o una instalación nueva de Windows XP
Source
The article referenced above 
Q309283 
 states the following: 
HAL Options After Windows XP or Windows Server 2003 Setup
When you install the following HALs on a Windows XP-based or Windows Server 
2003-based computer, the following device manager HAL options appear: (List 
of 5-6 HAL types including the following
 
"ACPI Multiprocessor PC", ACPI APIC MP HAL (Halmacpi.dll)
Standard PC
Advanced Configuration and Power Interface (ACPI) PC
ACPI Multiprocessor
MPS Multiprocessor
Several choices are listed. The ACPI MP PC HALL noted above is my interest.
EACH HAL type listed has a unique .dll file associated with it.
The ACPI Mulitprocessor PC, ACPI APIC MP HAL above is 'Halmacpi.dll.'
Note: A Standard PC HAL is Hal.dll
Question: After a clean install of XP and forcing the ACPI MP PC HAL type 
listed above, the XP Device Manager Driver Information indicates that 
Halmacpi.dll is NOT install. Rather Hal.dll is installed. The Hal.dll is 
installed when XP, again during a clean install, is allow to read the 
system and select the correct HAL. 
Concern 1 : IS the KB article incorrect? IF specific .dll files associated 
with specific HALs are listed why are they not installed?
BIG Concern : Could it be that the .dll file installed has something to do 
with WindowsXP NOT recognizing certain devices associated with the Intel 
875P chipset; namely the link between the "Processor and the I/O 
Controller" OR the link of "Processor to I/O Memory Interface - 257E"