Le gardien secret de Windows : comment le gestionnaire de contrôle des services fonctionne-t-il silencieusement dans les coulisses ?

Lorsque vous démarrez votre système Windows, de nombreux services s'exécutent silencieusement en arrière-plan, ce qui constitue des pierres angulaires importantes de la stabilité du système d'exploitation. Le démarrage et la gestion de ces services relèvent principalement de la responsabilité du Service Control Manager (SCM). SCM est un processus système spécial situé sous le système d'exploitation de la série Windows NT, responsable du démarrage, de l'arrêt et de l'interaction avec les processus de service Windows.

La fonctionnalité principale du SCM commence par sa fonction principale SvcCtrlMain(), qui démarre tous les services configurés pour démarrer automatiquement.

Le fichier exécutable SCM services.exe se trouve dans %SystemRoot%\System32\ et est démarré par le processus Wininit au début du démarrage du système. Lorsque le SCM commence à fonctionner, il initialise d’abord sa base de données interne des services installés, ce qui implique la lecture de clés de registre spécifiques.

Plus précisément, il initialise la base de données interne en lisant les deux clés de registre suivantes :

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder\List, cette clé contient les noms des groupes de services et leur ordre.
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, cette clé contient les données réelles du service et du pilote de périphérique.

SCM détermine l'ordre de chargement des services en fonction de la valeur du groupe et des dépendances de chaque service. Au cours de ce processus, si une dépendance circulaire est détectée, le SCM enregistrera une erreur et ignorera le service qui dépend du groupe chargé tardivement.

L'étape suivante du SCM consiste à vérifier si les pilotes de périphériques qui doivent être démarrés au démarrage du système ont été chargés avec succès et à enregistrer les pilotes ayant échoué dans une liste appelée ScFailedDrivers.

Le SCM appelle ensuite la fonction ScAutoStartServices(), qui parcourt tous les services marqués pour un démarrage automatique et les démarre en conséquence. Pour chaque service, le SCM appelle la fonction ScStartService() pour garantir que le processus du service s'exécute sous le bon compte. Si le service n'est pas exécuté sous le compte système, le SCM appelle la fonction LSASS LogonUserEx() pour obtenir le mot de passe « secret » qui a été stocké en toute sécurité lors de la configuration initiale du service.

De plus, il existe également un type de service spécial : le service de démarrage automatique différé. Ce type de service a été introduit dans Windows Vista pour résoudre le problème du démarrage lent du système. Le SCM ne commencera pas à initialiser les services de démarrage automatique différé tant que tous les services de démarrage automatique non différés n'auront pas été traités.

Bien qu'il y ait un délai dans le démarrage de ces services, ils ne sont pas très différents des autres services, à l'exception de l'ordre dans lequel ils sont démarrés.

Il convient de noter que le SCM gère également spécifiquement les services de pilotes de périphériques. La valeur d'enregistrement de type de ces services est SERVICE_KERNEL_DRIVER ou SERVICE_FILE_SYSTEM_DRIVER. Lorsque le SCM appelle ScStartService(), il appelle également la fonction ScLoadDeviceDriver() pour charger le pilote correspondant.

Grâce à l'appel système NtLoadDriver, le SCM s'assure que le pilote est chargé correctement. Lors du processus de démarrage initial, le SCM est même chargé de notifier aux autres applications, telles que l'Explorateur Windows, lorsque l'état de connexion d'un lecteur réseau change en diffusant le message Windows WM_DEVICECHANGE.

Cette conception permet aux utilisateurs de mieux gérer leurs ressources et services système, garantissant ainsi le bon fonctionnement du système d'exploitation.

Cependant, malgré le rôle essentiel que joue le SCM dans le démarrage d’un système, de nombreux utilisateurs ne comprennent pas vraiment son fonctionnement. Derrière chaque opération de SCM se cache une technologie complexe et efficace. En effet, elle permet aux utilisateurs d'utiliser des applications et des services apparemment ordinaires sans aucun obstacle.

Dans les futures versions de Windows, comment SCM évoluera-t-il pour répondre aux besoins de plus en plus divers des utilisateurs ?

Trending Knowledge

 Le secret du démarrage automatique des services : comment le système Windows accélère-t-il le démarrage ? 
À l’ère du numérique, un démarrage rapide et un fonctionnement efficace du système sont extrêmement importants pour les utilisateurs. Le système Windows peut démarrer de nombreux services en peu de te
 Mystère de l'écran bleu : quels changements surprenants se produiront si vous arrêtez services.exe ? 
Dans les systèmes d'exploitation Windows modernes, Service Control Manager (SCM) ou services.exe est l'un des composants essentiels du fonctionnement du système. Ce processus est responsa

Responses