Хардуера слой
Както вече споменахме, един от най-важните елементи на 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 Хардуер
![Хардуера слой (хардуер) Хардуера слой](https://webp.images-on-off.com/7/362/434x280_2nm9lwumuapkiqi7k36o.webp)
Имайте предвид, че Ntoskrnl свързани с HAL, което, от своя страна, е свързан с Ntoskrnl. (И двамата се използват функциите на другия.) Ntoskrnl също свързана със следните изпълними файлове:
Подробно описание на информацията, показана на тези средства е дадена в помощния файл на DependencyWalker (Depends.hlp).
Подобно на тези не.