Получив информацию об аппаратных средствах компьютера и выбранном аппаратном профиле, Ntldr загружает в память уровень аппаратных абстракций (Hal.dll) и ядро операционной системы Ntoskrnl.exe. Загрузив и запустив ядро, Ntldr передает ему информацию, собранную программой Ntdetect.com.
Информация о выбранном аппаратном профиле передается загрузчику, когда пользователь нажимает клавишу <Enter> в меню Hardware Profile/ Configuration Recovery. Помимо этого, загрузчик может сделать выбор автоматически по истечении указанного интервала времени (или в случае, если в системе существует только один аппаратный профиль). На данном этапе ядро и уровень аппаратных абстракций еще не инициализированы. Далее загрузчик просматривает реестр и загружает улей HKEY_LOCAL_MACHINE\ SYSTEM из файла
%SystemRoot%\system32\Config\System.
В Windows NT/2000 загрузчик на данном этапе извлекал информацию о заданном по умолчанию или определенном пользователем размере реестра (registry quota). Как будет показано в главе 24 "Работа с системным реестром", в Windows XP и Windows Server 2003 необходимость в ограничении по размеру реестра отпала.
Рис. 3.1. Ключ реестра HKEY_LOCAL_MACHINE\SYSTEM\Select
Далее загрузчик сканирует все сервисы (службы), определенные ключом
реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, И
ищет драйверы устройств, для которых значение start равно 0x0 (такое значение указывает на то, что драйверы должны быть загружены, но не инициализированы). Как правило, драйверы с такими значениями представляют собой низкоуровневые драйверы устройств, например, драйверы дисков. Значение Group для каждого драйвера устройства определяет порядок, в котором загрузчик должен его загружать. Ключ HKEY_LOCAL_MACHINE\SYSTEM
\CurrentControlSet\Control\ServiceGroupOrder реестра определяет порядок загрузки.
К моменту завершения этой фазы все базовые драйверы загружены и активны, за исключением случаев, когда один из критически важных драйверов не инициализировался, вследствие чего началась перезагрузка системы.