В ходе начальной загрузки системы, диспетчер управления службами (SCM) запускает все стартующие автоматически службы и службы, от которых они зависят. Например, если запускаемая автоматически служба зависит от запуска службы по запросу, запуск службы по запросу также стартует автоматически. Порядок загрузки обуславливается нижеследующим:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control |
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control |
Когда завершается начальная загрузка, система выполняет загрузочную программу проверки, заданную значением BootVerificationProgram нижеследующего ключа системного реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control |
По умолчанию, это значение не установлено. Система просто сообщает, что начальная загрузка была успешно завершена после того, как первый пользователь вошел в систему. Вы можете предоставить загрузочную программу проверки, которая проверяет систему на проблемы и сообщить о загрузочном статусе диспетчеру управления службами (SCM), используя функцию NotifyBootConfigStatus.
После успешной начальной загрузки, система сохраняет клона базы данных в "самой последней обеспечивающей правильный запуск системы" (LKG) конфигурации. Система может восстановить эту копию базы данных, если изменения, сделанные в активной базе данных заставляют системную перезагрузку завершиться ошибкой. Ниже следует ключ системного реестра для этой базы данных,
HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Services |
где XXX - значение, сохраняемое в следующем ниже ключе системного реестра:
HKEY_LOCAL_MACHINE\System\Select\LastKnownGood |
Если старт запускаемой автоматически службы с уровнем защиты от ошибок SERVICE_ERROR_CRITICAL завершается ошибкой, диспетчер управления службами (SCM) перезагружает машину, используя LKG конфигурацию. Если LKG конфигурация уже используется, начальная загрузка завершается ошибкой.