How to Troubleshoot Windows 2000 Hardware Abstraction Layer Issues

ID: Q237556


The information in this article applies to:
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Professional
  • Microsoft Windows 2000 Server


SUMMARY

In Windows 2000 there are several ways to troubleshoot issues related to the Hardware Abstraction Layer (HAL) that may occur as a result of misdetection, an outdated or non-compliant Advanced Configuration and Power Interface (ACPI) Basic Input/Output System (BIOS), or an incorrectly or manually installed computer type. This article describes some of the methods you can use to troubleshoot issues related to the HAL.

NOTE: In this article, the term "computer type" and "HAL" have the same meaning, and may be interchanged.


MORE INFORMATION

Determine Your Computer Type

To determine the computer type you are using:
  1. Click Start, point to Settings, click Control Panel, and then double-click System.


  2. Click the Hardware tab, and then click Device Manager to view what is listed under the Computer branch. The following is the list of supported computer types.

    Possible values for the HAL under Standard computers include:


  3. ACPI Multiprocessor PC
    ACPI Uniprocessor PC
    Advanced Configuration and Power Interface (ACPI) PC
    MPS Multiprocessor PC
    MPS Uniprocessor PC
    Standard PC
    Possible values for the HAL under Compaq include:
    Compaq SystemPro Multiprocessor or 100% Compatible
    Possible values for the HAL under SGI include:
    Silicon Graphics Visual Workstation

View or Change Installed Computer Type

To view or change the installed computer type:

WARNING: Note that you should not attempt to change from an ACPI HAL to a standard HAL or from a standard HAL to a ACPI HAL under any circumstances. Doing so will result in your computer not starting properly or at all. This occurs because the Plug and Play device tree that would be currently loaded is for ACPI, and it does not get reconstructed or revert to a standard HAL Plug and Play device tree. Because of this (the device tree structures being drastically different), the system is unaware of any hardware changes after the computer restarts to include the location of the boot device. Microsoft does not recommend or support this procedure as it will result in data loss.
  1. Click Start, point to Settings, click Control Panel, and then double-click System.


  2. Click the Hardware tab, and then click Device Manager to view what is listed under the Computer branch. As an example, "Standard PC", the detected computer type Windows 2000 installed on your computer, or an entry such as "Advanced Configuration Power Interface (ACPI) PC" may be listed.


  3. To change the installed computer type, click the Driver tab, and then click Update Drivers.

    NOTE: You can only change or update your HAL from Device Manager under Computer Type when changing from a Standard PC HAL to a Standard Multiprocessor PC HAL, because changing from an ACPI HAL to a Standard HAL can result in your not being able to start your computer.


If you are unable to start your computer properly as a result of the wrong computer type (HAL) being installed after Windows 2000 Setup, start the Emergency Repair process:
  1. Start your computer by using the Windows 2000 Setup floppy disks, or with the Windows 2000 CD-ROM if your computer supports starting from a CD-ROM.


  2. At the Welcome to Setup screen, press R to repair.


  3. At the Windows 2000 Repair Options screen, press R to repair using the emergency repair process.


  4. Press M to manually select repair options and ensure that "Verify Windows 2000 system files" and "Inspect startup environment" features are selected, or press F to run all repair options.


  5. Once complete, the originally installed HAL and associated files should be restored. Remove the CD-ROM or floppy disk and then restart your computer.

    NOTE: The incorrectly installed computer type is still visible in Device Manager.


  6. To ensure the correct computer type is visible in Device Manager, when you restart your computer, press F8, choose Last Known Good Configuration, and then press ENTER.


  7. Click the appropriate hardware profile (if more than one profile exists). On the hardware profile, click Configuration Recovery, press ENTER, and then permit Windows 2000 to start.


The optimum method to change from an ACPI HAL to a Standard HAL is to re-install Windows 2000 as an upgrade:
  1. Start Windows 2000 Setup as an upgrade.


  2. To automatically disable ACPI support and allow Windows 2000 to detect and install the correct (Standard HAL) computer type that your computer supports, use either of the following methods:

    Press F7

    Press F7 when Setup generates the following informational message:
    Press F6 if you need to install a third party SCSI or RAID driver.

    Press F5

    Press F5, and then manually choose the correct Standard computer type by using the following list:

    i386 source File Computer Type
    *hal.dll Compaq SystemPro Multiprocessor or 100% Compatible
    *halapic.dll MPS Uniprocessor PC
    *halapic.dll MPS Multiprocessor PC
    *hal.dll Standard PC
    *halborg.dll SGI mp


    NOTE: You do not have to use the reinstallation method to update from a Standard PC HAL to a MPS Multiprocessor PC HAL, you can use the Update Drivers feature in Device Manager for this. However, you must reinstall Windows 2000 when going to an ACPI HAL computer type on a computer that was using the Standard computer type, and then permit Windows 2000 to automatically detect the correct computer type.


If the Emergency Repair process cannot locate your repair information or if the repair information is invalid, recover your Windows 2000 installation by starting the Recovery Console:
  1. Start your computer with the Windows 2000 Setup floppy disks, or with the Windows 2000 CD-ROM if your computer supports starting from CD-ROM. At the Welcome to Setup screen, press R to repair, and then press C to start the Recovery Console.

    NOTE: For information about using the Recovery Console, please click the article number below to view the article in the Microsoft Knowledge Base:
    Q229716 Description of the Windows 2000 Recovery Console


  2. After you log on to your computer, from the 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).

    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
    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
    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 winnt\System32 winsrv.dll


  4. Expand the Ntdll.dll file from the original Windows 2000 CD-ROM (i386\driver.cab) or installed service pack to the %SystemRoot%\system32 folder of your original Windows 2000 installation.


  5. Expand the Win32k.sys file from the original Windows 2000 CD-ROM (i386\driver.cab) or installed service pack to the %SystemRoot%\system32 folder of your original Windows 2000 installation.


  6. Expand the Kernel32.dll and Winsrv.dll from the Windows 2000 CD-ROM (i386\driver.cab) or installed service pack to the %SystemRoot%\system32 folder of your original Windows 2000 installation. For example, type the following commands


  7. expand CD-ROM drive letter:\i386\driver.cab /F:kernel32.dll %systemroot%\system32\kernel32.dll

    expand CD-ROM drive letter:\i386\driver.cab /F:winsrv.dll %systemroot%\system32\winsrv.dll

    where CD-ROM drive letter is your CD-ROM drive letter.

  8. Restart your computer.


For related information, please click the article number below to view the article in the Microsoft Knowledge Base:
Q234558 How to Add Support for Multiple Processors in Windows 2000
WARNING: Windows 2000 displays the list of compatible computer types that can be installed when you use Device Manager to manually update. Doing anything beyond what is listed as compatible is likely to result in not being able to start your computer correctly or at all. If you do have "Advanced Configuration Power Interface (ACPI) PC" listed as your computer type or after updating to the latest ACPI BIOS, then you cannot update to the "ACPI Multiprocessor PC" through Device Manager and may result in not being able to start your computer correctly or at all. In the case of an ACPI HAL, for Windows 2000 to support or recognize both CPUs using an ACPI HAL, you must first update to the latest ACPI BIOS which is fully compliant, then re-install Windows 2000 as an upgrade so it can automatically detect and install ACPI Multiprocessor PC; if it does not, your BIOS in not fully compliant yet.

Additional query words: win2000hotsetup

Keywords : kbenv kbtool
Version : WINDOWS:2000
Platform : WINDOWS
Issue type : kbhowto


Last Reviewed: January 4, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.