Автоматическое запуск служб

Во время загрузки системы SCM запускает все службы автоматического запуска и службы, от которых они зависят. Например, если служба автозапуска зависит от службы запуска по запросу, служба запуска по запросу также запускается автоматически.

Порядок загрузки определяется следующим образом:

  1. Порядок групп в списке групп сортировки нагрузки. Эти сведения хранятся в значении списка в следующем разделе реестра:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder

    Чтобы указать группу упорядочивания нагрузки для службы, используйте параметр lpLoadOrderGroup функции CreateService или ChangeServiceConfig.

  2. Порядок служб в группе, указанной в векторе порядка тегов. Эти сведения хранятся в следующем разделе реестра:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList

  3. Зависимости, перечисленные для каждой службы.

По завершении загрузки система выполняет программу проверки загрузки, указанную значением ImagePath следующего раздела реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BootVerificationProgram.

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

После успешной загрузки система сохраняет клон базы данных в последней известной конфигурации (LKG). Система может восстановить эту копию базы данных, если изменения, внесенные в активную базу данных, вызывают сбой перезагрузки системы. Ниже приведен раздел реестра для этой базы данных:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Services

где XXX — это значение, сохраненное в следующем значении реестра: HKEY_LOCAL_MACHINE\System\Select\LastKnownGood.

Если служба автоматического запуска с уровнем управления ошибками SERVICE_ERROR_CRITICAL не запускается, SCM перезагружает компьютер с помощью конфигурации LKG. Если конфигурация LKG уже используется, загрузка завершается ошибкой.

Службу автозапуска можно настроить как отложенную службу автоматического запуска, вызвав функцию ChangeServiceConfig2 с SERVICE_CONFIG_DELAYED_AUTO_START_INFO. Это изменение вступает в силу после следующей загрузки системы. Дополнительные сведения см. в SERVICE_DELAYED_AUTO_START_INFO.