Demandes de contrôle de service
Pour envoyer des demandes de contrôle à un service en cours d’exécution, un programme de contrôle de service utilise la fonction ControlService. Cette fonction spécifie une valeur de contrôle transmise à la fonction HandlerEx du service spécifié. Cette valeur de contrôle peut être un code défini par l’utilisateur, ou il peut s’agir de l’un des codes standard qui permettent au programme appelant d’effectuer les actions suivantes :
- Arrêtez un service (SERVICE_CONTROL_STOP).
- Suspendre un service (SERVICE_CONTROL_PAUSE).
- Reprendre l’exécution d’un service suspendu (SERVICE_CONTROL_CONTINUE).
- Récupérer les informations d’état mises à jour à partir d’un service (SERVICE_CONTROL_INTERROGATE).
Chaque service spécifie les valeurs de contrôle qu’il accepte et traite. Pour déterminer quelles valeurs de contrôle standard sont acceptées par un service, utilisez la fonction QueryServiceStatusEx ou spécifiez la valeur de contrôle SERVICE_CONTROL_INTERROGATE dans un appel à la fonction ControlService. La dwControlsAccepted membre de la structure SERVICE_STATUS retournée par ces fonctions indique si le service peut être arrêté, suspendu ou repris. Tous les services acceptent la valeur de contrôle SERVICE_CONTROL_INTERROGATE.
La fonction QueryServiceStatusEx signale l’état le plus récent d’un service spécifié, mais n’obtient pas d’état mis à jour à partir du service lui-même. L’utilisation de la valeur de contrôle SERVICE_CONTROL_INTERROGATE dans un appel à ControlService garantit que les informations d’état retournées sont actuelles.
Rubriques connexes