Windows OSではシステムの構成に応じて何種類かのHALが使い分けられている。具体的には次のようなHALタイプがあり、それぞれ別のHALモジュール(DLLファイル)が利用される(TIPS「Windows 2000で選択可能なHALのシステム タイプ」も参照。このTIPSは対象はWindows 2000となっているが、ほかのOSでもほとんど同じである)。
システムのタイプ
ファイル名
内容
標準 PC
hal.dll
ACPIなしで、MPSなし(シングルコア)のPC
MPS ユニプロセッサ PC
halapic.dll
ACPIなしで、MPSあり(シングルコア)のPC
MPS マルチプロセッサ PC
halmps.dll
ACPIなしで、MPSあり(マルチコア)のPC
ACPI (Advanced Configuration and Power Interface) PC
halacpi.dll
ACPIありで、MPSなし(シングルコア)のPC
ACPI ユニプロセッサ PC
halaacpi.dll
ACPIありで、MPSあり(シングルコア)のPC
ACPI マルチプロセッサ PC
halmacpi.dll
ACPIありで、MPSあり(マルチコア)のPC
Windows OSでサポートされているシステムのタイプ(主なもの)
システムのタイプに応じて利用するHALが変わる。これはWindows XP Professionalのインストール時などに表示されるシステムのタイプ名。MPSとはマルチプロセッサ・システムを利用するための仕様の名称。
HALの選択は、基本的にはWindows OSのインストール時に行われる。そのため、ディスク・イメージの丸ごとコピーによるシステム移行ではHALは更新されない(逆に言えば、HALタイプが変わらないような移行ならば、ディスク・イメージのコピーによる移行でも成功する可能性が高いとも言える)。ただし最近のWindows OS(Windows Vista/Windows Server 2008以降)では、起動時に自動的にシステムをチェックして、適切なHALをロード機能があるので、HALの違いによるブルー・スクリーンは発生しにくくなっている。
これは、あるWindows XP Professional SP3システムにインストールされているHAL.DLLファイルのプロパティ画面の例。元々は別のファイル名だったが、OSのインストール時にHAL.DLLという名前でシステム・フォルダにコピーされている。
このタブを選択する。
「正式ファイル名」にはオリジナルのファイル名が記録されている。
これが元のファイル名。このファイルは、Windows OSのインストール・ソースに置かれている。Windows XP Professionalの場合は、「HALAACPI.DL_」という名前で圧縮されて保存されているはず。これを展開してHAL.DLLという名前でコピーしている。ただしService Packや修正プログラムに含まれる形で、より新しいバージョンのものが提供されることもある。