Хардуера слой

Както вече споменахме, един от най-важните елементи на Windows дизайн е преносимостта му в различни хардуерни платформи. Хардуера слой - хардуера слой (HAL) е ключова част от осигуряването на такава възможност за преносимост.

HAL е натоварваща ядрото режим модул (Hal.dll), осигуряване на ниско ниво интерфейс за хардуерната платформа, на която да се изпълнява Windows. Тя се крие подробностите, в зависимост от оборудването, като входно-изходни интерфейси, прекъсват контролери и механизми на взаимодействие между процесори - всички функции, които едновременно архитектурен и машина зависимост.

Ето защо, вместо директно достъп до хардуера, вътрешните компоненти на Windows и драйвери на устройства са написани от потребителите, тъй като необходимата информация, в зависимост от преносимостта на платформа подкрепа, като се обадите на HAL-съчетания. Поради тази причина, HAL-съчетания са документирани в WDK. За повече информация относно HAL и нейните драйвери на устройства трябва да се обърнем към WDK.

Въпреки, че операционната система включва няколко HAL-модули (вж. Раздел), Windows е възможно да се определи по време на изтеглянето, а HAL-модул трябва да се използва, освен за проблема, който съществува в по-рано пуснати версии на Windows, когато се опитате Windows Installer изтегляне на различните видове системи.

Списък на HAL-модули за x86.

Компютри с подобрен интерфейс
управление на конфигурацията, както и консумацията на енергия - за напреднали
За енергийно потребление (ACPI). предназначена само
за един процесор машина без подкрепата на Advanced Programmable Interrupt Controller - APIC (наличие на някое от тези контролери ще накара системата да се използва
вместо HAL-единица е показано по-долу)

Персонални компютри с напреднал програмируем контролер прекъсване - Advanced Programmable Interrupt
Контролер (APIC), като ACPI. Наличието на APIC средства
подкрепа за многопроцесорни системи - ОМП

ЗАБЕЛЕЖКА. На машини x64, има само един начин на HAL нар Hal.dll. Това се дължи на присъствието на всички машини x64 дънни същата конфигурация като процесите се изисква да поддържа ACPI и APIC. Ето защо, на машините без подкрепа ACPI, или с стандартната програмируем контролер прекъсване - PIC, не се изисква.

Експеримент: определяне на течаща HAL-модул.

Определите коя версия на HAL-модул работи, можете да използвате WinDbg и откриването на сесия на местния дебъгването на ядрото. Принос .reload чрез изтеглянето на знака команда и след това въведете командата л.м. VM Хал на.

Например, следния извод е получена на една система, която стартира ACPI HAL:

LKD> LM VM Hal

започнете на името на крайния модул

fffff800'0181b000 fffff800'01864000 Hal (отложено)

Заредени символ на изображението: halmacpi.dll

път снимката: halmacpi.dll

Име на снимката: halmacpi.dll

Файл версия: 6.1.7600.16385

Каталог версия: 6.1.7600.16385

File знамена: 0 (Mask 3F)

Файл OS: 40004 NT Win32

Тип на файла: 2.0 Dll

дата на файла: 00000000.00000000

CompanyName: Microsoft Corporation

Име на продукта: Операционната система Microsoft® Windows®

FileVersion: 6.1.7600.16385 (win7_rtm.090713-1255)

FileDescription: Abstraction Layer DLL Хардуер

Хардуера слой

Имайте предвид, че Ntoskrnl свързани с HAL, което, от своя страна, е свързан с Ntoskrnl. (И двамата се използват функциите на другия.) Ntoskrnl също свързана със следните изпълними файлове:

Подробно описание на информацията, показана на тези средства е дадена в помощния файл на DependencyWalker (Depends.hlp).

Подобно на тези не.