Программирование драйверов Windows

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


На этапе загрузки ядра NTLDR выполняет следующие действия:

  • Загружает код ядра из файла NTOSKRNL.EXE (NTKRNLPA.EXE при наличии опции /РАЕ в файле boot.ini), но не инициализирует его.
  • Загружает код слоя аппаратных абстракций из файла HAL.DLL.
  • Загружает раздел HKLM\SYSTEM из %systemroot%\System32\Config\System.
  • Выбирает набор параметров для конфигурации (список драйверов, устройств, устройств и служб, которые необходимо запустить).
  • Загружает драйверы (обычно это низкоуровневые драйвера, как, например, драйвера дисков) со значением параметра Start равным 0x0.
  • Значение параметра List в HKLM\SYSTEM\CurrentContorlSet\Control\ServiceGroupOrder

    определяет порядок загрузки их загрузчиком NTLDR. Драйверы, регулирующие свою загрузку таким способом, должны иметь соответствующие значения параметра Group в своих подразделах раздела Системного Реестра HKLM\System\CurrentControlSet\Services.



    Содержание раздела