Partager via


structure SERVICE_CONTROL_STATUS_REASON_PARAMSA (winsvc.h)

Contient les paramètres de contrôle de service.

Syntaxe

typedef struct _SERVICE_CONTROL_STATUS_REASON_PARAMSA {
  DWORD                  dwReason;
  LPSTR                  pszComment;
  SERVICE_STATUS_PROCESS ServiceStatus;
} SERVICE_CONTROL_STATUS_REASON_PARAMSA, *PSERVICE_CONTROL_STATUS_REASON_PARAMSA;

Membres

dwReason

Raison pour laquelle le service status SERVICE_CONTROL_STOP. Si le code de contrôle actuel n’est pas SERVICE_CONTROL_STOP, ce membre est ignoré.

Ce membre doit être défini sur une combinaison d’un code général, d’un code de raison principal et d’un code de raison mineur.

Voici les codes de raison généraux.

Valeur Signification
SERVICE_STOP_REASON_FLAG_CUSTOM
0x20000000
La raison du code est définie par l’utilisateur. Si cet indicateur n’est pas présent, le code de raison est défini par le système. Si cet indicateur est spécifié avec un code de raison système, l’appel de fonction échoue.

Les utilisateurs peuvent créer des codes de raison principaux personnalisés dans la plage SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM (0x00400000) à SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM (0x00ff0000) et des codes de motifs mineurs dans la plage SERVICE_STOP_REASON_MINOR_MIN_CUSTOM (0x00000100) à SERVICE_STOP_REASON_MINOR_MAX_CUSTOM (0x0000FFFF).

SERVICE_STOP_REASON_FLAG_PLANNED
0x40000000
L’arrêt de service était planifié.
SERVICE_STOP_REASON_FLAG_UNPLANNED
0x10000000
L’arrêt du service n’était pas planifié.
 

Voici les principaux codes de raison.

Valeur Signification
SERVICE_STOP_REASON_MAJOR_APPLICATION
0x00050000
Problème d’application.
SERVICE_STOP_REASON_MAJOR_HARDWARE
0x00020000
Problème matériel.
SERVICE_STOP_REASON_MAJOR_NONE
0x00060000
Pas de raison majeure.
SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM
0x00030000
Problème de système d’exploitation.
SERVICE_STOP_REASON_MAJOR_OTHER
0x00010000
Autre problème.
SERVICE_STOP_REASON_MAJOR_SOFTWARE
0x00040000
Problème logiciel.
 

Voici les codes de raison mineurs.

Valeur Signification
SERVICE_STOP_REASON_MINOR_DISK
0x00000008
disque.
SERVICE_STOP_REASON_MINOR_ENVIRONMENT
0x0000000a
Environnement.
SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER
0x0000000b
Pilote.
SERVICE_STOP_REASON_MINOR_HUNG
0x00000006
Insensible.
SERVICE_STOP_REASON_MINOR_INSTALLATION
0x00000003
Installation.
SERVICE_STOP_REASON_MINOR_MAINTENANCE
0x00000002
Entretien.
SERVICE_STOP_REASON_MINOR_MMC
0x00000016
Problème MMC.
SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY
0x00000011
Connectivité réseau
SERVICE_STOP_REASON_MINOR_NETWORKCARD
0x00000009
Carte réseau.
SERVICE_STOP_REASON_MINOR_NONE
0x00060000
Aucune raison mineure.
SERVICE_STOP_REASON_MINOR_OTHER
0x00000001
Autre problème.
SERVICE_STOP_REASON_MINOR_OTHERDRIVER
0x0000000c
Autre événement de pilote.
SERVICE_STOP_REASON_MINOR_RECONFIG
0x00000005
Reconfigurer.
SERVICE_STOP_REASON_MINOR_SECURITY
0x00000010
Problème de sécurité.
SERVICE_STOP_REASON_MINOR_SECURITYFIX
0x0000000f
Mise à jour de sécurité.
SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL
0x00000015
Désinstallation de la mise à jour de sécurité.
SERVICE_STOP_REASON_MINOR_SERVICEPACK
0x0000000d
Service Pack.
SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL
0x00000013
Désinstallation du Service Pack.
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE
0x0000000e
Mise à jour logicielle.
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL
0x0000000e
Désinstallation des mises à jour logicielles.
SERVICE_STOP_REASON_MINOR_UNSTABLE
0x00000007
Unstable.
SERVICE_STOP_REASON_MINOR_UPGRADE
0x00000004
Mettre à niveau.
SERVICE_STOP_REASON_MINOR_WMI
0x00000012
Problème WMI.

pszComment

Chaîne facultative qui fournit des informations supplémentaires sur l’arrêt de service. Cette chaîne est stockée dans le journal des événements avec le code de raison d’arrêt. Ce membre doit avoir la valeur NULL ou une chaîne valide de moins de 128 caractères, y compris le caractère null de fin.

ServiceStatus

Pointeur vers une structure de SERVICE_STATUS_PROCESS qui reçoit les dernières informations status de service. Les informations retournées reflètent les status les plus récents que le service a signalés au gestionnaire de contrôle de service.

Le gestionnaire de contrôle de service remplit la structure uniquement lorsque ControlServiceEx retourne l’un des codes d’erreur suivants : NO_ERROR, ERROR_INVALID_SERVICE_CONTROL, ERROR_SERVICE_CANNOT_ACCEPT_CTRL ou ERROR_SERVICE_NOT_ACTIVE. Sinon, la structure n’est pas renseignée.

Remarques

Notes

L’en-tête winsvc.h définit SERVICE_CONTROL_STATUS_REASON_PARAMS comme un 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. Le mélange 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 Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
En-tête winsvc.h (inclure Windows.h)

Voir aussi

ControlServiceEx

SERVICE_STATUS_PROCESS