Démarrage automatique des services

Pendant le démarrage du système, le SCM démarre tous les services de démarrage automatique et les services dont ils dépendent. Par exemple, si un service de démarrage automatique dépend d’un service de démarrage à la demande, le service de démarrage à la demande est également démarré automatiquement.

L’ordre de chargement est déterminé par les éléments suivants :

  1. L’ordre des groupes dans la liste des groupes de classement des chargements. Ces informations sont stockées dans la valeur Liste dans la clé de registre suivante :

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder

    Pour spécifier le groupe de classement des chargements d’un service, utilisez le paramètre lpLoadOrderGroup de la fonction CreateService ou ChangeServiceConfig.

  2. L’ordre des services au sein d’un groupe spécifié dans le vecteur d’ordre des balises. Ces informations sont stockées dans la clé de registre suivante :

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList

  3. Les dépendances répertoriées pour chaque service.

Une fois le démarrage terminé, le système exécute le programme de vérification du démarrage spécifié par la valeur ImagePath de la clé de registre suivante : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BootVerificationProgram.

Par défaut, cette valeur n’est pas définie. Le système signale simplement que le démarrage a réussi une fois que le premier utilisateur s’est connecté. Vous pouvez fournir un programme de vérification du démarrage qui vérifie que le système ne présente par de problèmes et signale l’état de démarrage au SCM à l’aide de la fonction NotifyBootConfigStatus.

Après un démarrage réussi, le système enregistre un clone de la base de données dans la dernière configuration correcte connue (configuration LKG). Le système peut restaurer cette copie de la base de données si les modifications apportées à la base de données active provoquent l’échec du redémarrage du système. Voici la clé de registre pour cette base de données :

HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Services

XXX est la valeur enregistrée dans la valeur de registre suivante : HKEY_LOCAL_MACHINE\System\Select\LastKnownGood.

Si un service de démarrage automatique avec un niveau de contrôle d’erreur SERVICE_ERROR_CRITICAL ne parvient pas à démarrer, le SCM redémarre l’ordinateur à l’aide de la configuration LKG. Si la configuration LKG est déjà utilisée, le démarrage échoue.

Un service de démarrage automatique peut être configuré en tant que service de démarrage automatique différé en appelant la fonction ChangeServiceConfig2 avec SERVICE_CONFIG_DELAYED_AUTO_START_INFO. Cette modification prend effet après le prochain démarrage du système. Pour plus d’informations, consultez SERVICE_DELAYED_AUTO_START_INFO.