Partager via


SERVICE_FAILURE_ACTIONSW structure (winsvc.h)

Représente l’action que le contrôleur de service doit effectuer sur chaque défaillance d’un service. Un service est considéré comme ayant échoué lorsqu’il se termine sans signaler de status de SERVICE_STOPPED au contrôleur de service.

Pour configurer des circonstances supplémentaires dans lesquelles les actions d’échec doivent être exécutées, consultez SERVICE_FAILURE_ACTIONS_FLAG.

Syntaxe

typedef struct _SERVICE_FAILURE_ACTIONSW {
  DWORD     dwResetPeriod;
  LPWSTR    lpRebootMsg;
  LPWSTR    lpCommand;
  DWORD     cActions;
  SC_ACTION *lpsaActions;
} SERVICE_FAILURE_ACTIONSW, *LPSERVICE_FAILURE_ACTIONSW;

Membres

dwResetPeriod

Délai après lequel rétablir le nombre d’échecs à zéro s’il n’y a pas d’échec, en secondes. Spécifiez INFINITE pour indiquer que cette valeur ne doit jamais être réinitialisée.

lpRebootMsg

Message à diffuser aux utilisateurs du serveur avant le redémarrage en réponse à l’action du contrôleur de service SC_ACTION_REBOOT .

Si cette valeur est NULL, le message de redémarrage est inchangé. Si la valeur est une chaîne vide («  »), le message de redémarrage est supprimé et aucun message n’est diffusé.

Ce membre peut spécifier une chaîne localisée au format suivant :

@[path]dllname,-strID

La chaîne avec l’identificateur strID est chargée à partir de dllname ; le chemin d’accès est facultatif. Pour plus d’informations, consultez RegLoadMUIString.

Windows Server 2003 et Windows XP : Les chaînes localisées ne sont pas prises en charge tant que Windows Vista n’est pas pris en charge.

lpCommand

Ligne de commande du processus pour que la fonction CreateProcess s’exécute en réponse à l’action du contrôleur de service SC_ACTION_RUN_COMMAND . Ce processus s’exécute sous le même compte que le service.

Si cette valeur est NULL, la commande est inchangée. Si la valeur est une chaîne vide («  »), la commande est supprimée et aucun programme n’est exécuté en cas d’échec du service.

cActions

Nombre d’éléments dans le tableau lpsaActions .

Si cette valeur est 0, mais que lpsaActions n’a pas la valeur NULL, la période de réinitialisation et le tableau des actions d’échec sont supprimés.

lpsaActions

Pointeur vers un tableau de structures SC_ACTION .

Si cette valeur est NULL, les membres cActions et dwResetPeriod sont ignorés.

Remarques

Le gestionnaire de contrôle de service compte le nombre de fois où chaque service a échoué depuis le démarrage du système. Le nombre est réinitialisé à 0 si le service n’a pas échoué pendant les secondes dwResetPeriod . Lorsque le service échoue pour la Nièmefois, le contrôleur de service effectue l’action spécifiée dans l’élément [N-1] du tableau lpsaActions . Si N est supérieur à cActions, le contrôleur de service répète la dernière action dans le tableau.

Notes

L’en-tête winsvc.h définit SERVICE_FAILURE_ACTIONS en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête winsvc.h (inclure Windows.h)

Voir aussi

ChangeServiceConfig2

CreateProcess

QueryServiceConfig2

SC_ACTION

SERVICE_FAILURE_ACTIONS_FLAG