Загрузка ядра

Получив информацию об аппаратных средствах компьютера и выбранном аппаратном профиле, загрузчик запускает ядро операционной системы Ntoskrnl.exe и передает ему информацию, собранную программой Ntdetect.com.

Информация о выбранном аппаратном профиле передается загрузчику, когда пользователь нажимает клавишу <Enter> в Меню выбора конфигурации оборудования (Hardware Profile/Configuration Recovery Menu). Помимо этого, загрузчик может сделать выбор автоматически при истечении таймера (или в том случае, если в системе существует только один аппаратный профиль).

О начале фазы загрузки ядра сигнализирует появление на экране индикатора степени завершенности загрузки в память ядра Windows NT/2000 (Ntoskrnl.exe) и уровня аппаратных абстракций (Hal.dll). На данном этапе эти программы еще не инициализированы. Далее загрузчик просматривает реестр, извлекает информацию о заданных по умолчанию или определенных пользователем размерах резидентного пула памяти (nonpaged pool) и реестра (registry quota) (только для Windows NT/ 2000) и загружает улей реестра HKEY_LOCAL_MIACHINESYSTEM из каталога %SystemRoot%System32Colifig System.

На данном этапе загрузчик активизирует API для работы с реестром и создает набор опций управления (control set), который будет использоваться для инициализации компьютера. Эти задачи являются подготовительными для загрузки драйверов. Значение, заданное в ключе реестра HKEY_LOCAL_ MACHINESYSTEMSeiect , определяет, какой набор опций управления из перечисленных в ключе HKEY_LOCAL_MACHINESYSTEM должен быть задействован при загрузке. По умолчанию загрузчик выбирает набор опций управления, определяемый значением Default. Если пользователь выбрал последнюю успешно загруженную конфигурацию Загрузка последней удачной конфигурации (Last Known Good Configuration), то загрузчик использует набор опций управления, определяемых значением LastKnownGood. На основании сделанного пользователем выбора и значений подключа select загрузчик определяет, какой из наборов опций управления (controlsetoox) будет активизирован. После этого загрузчик устанавливает значение Current подключа реестра select на номер набора управляющих опций, который он будет использовать.

Далее загрузчик сканирует все сервисы (службы), определенные ключом реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices и ищет драйверы устройств, для которых значение start равно 0x0 (это означает, что драйверы должны быть загружены, но не инициализированы). Как правило, драйверы с такими значениями представляют собой низкоуровневые драйверы устройств, например, драйверы дисков. Значение Group для каждого драйвера устройства определяет порядок, в котором загрузчик должен его загружать. Ключ реестра HKEY_LOCAL_MACHINESYSTEM CurrentControlSet ControlServiceGroupOrder определяет порядок загрузки.

К моменту завершения этой фазы все базовые драйверы загружены и активны, за исключением случаев, когда один из критически важных драйверов не инициализировался, вследствие чего началась перезагрузка системы.