HAL, Hardware Abstraction Layer
Слой аппаратных абстракций. Слой программного обеспечения в Windows NT, который призван скрыть специфику аппаратной платформ (Intel32, Intel64, Alpha) от остальных компонентов операционной системы, обеспечивая малые затраты при переносе системы или элементов программного обеспечения. Уровень HAL предоставляет процедуры, которые позволяют абстрагироваться от аппаратных тонкостей, как, например, детали реализации шин ввода/вывода, прерываний, DMA операций и т.п.
Для не-WDM драйверов, например, уровень HAL предоставляет функции для получения информации о подключенных к шинам устройствах. Следует особо отметить процедуру HAL для выполнения отображения прерывания на конкретной аппаратной шине на общесистемный вектор прерывания с соответствующим уровнем приоритета DIRQL.
Персонально драйверам WDM остается лишь скромный набор макроопределений для доступа к портам ввода/вывода.
Предполагается, что при дотошном использовании HAL инструментария проблемы по переносимости кода на другую аппаратуру будут минимальны.