Contient des 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 de la modification de l’état du service en 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 majeure et d’un code de raison mineure.
Voici les codes de raison générale.
Valeur |
Signification |
-
SERVICE_STOP_REASON_FLAG_CUSTOM
- 0x20000000
|
Le code de raison est défini 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 principale personnalisés dans la plage SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM (0x00400000) via SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM (0x00ff0000) et les codes de raison mineure de la plage SERVICE_STOP_REASON_MINOR_MIN_CUSTOM (0x00000100) via SERVICE_STOP_REASON_MINOR_MAX_CUSTOM (0x0000FFFF).
|
-
SERVICE_STOP_REASON_FLAG_PLANNED
- 0x40000000
|
L’arrêt du service a été planifié.
|
-
SERVICE_STOP_REASON_FLAG_UNPLANNED
- 0x10000000
|
L’arrêt du service n’a pas été 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
|
Aucune 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 mineure.
Valeur |
Signification |
-
SERVICE_STOP_REASON_MINOR_DISK
- 0x00000008
|
Disque.
|
-
SERVICE_STOP_REASON_MINOR_ENVIRONMENT
- 0x0000000a
|
Environnement.
|
-
SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER
- 0x0000000b
|
Chauffeur.
|
-
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 de Service Pack.
|
-
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE
- 0x0000000e
|
Mise à jour logicielle.
|
-
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL
- 0x0000000e
|
Désinstallation de la mise à jour logicielle.
|
-
SERVICE_STOP_REASON_MINOR_UNSTABLE
- 0x00000007
|
Instable.
|
-
SERVICE_STOP_REASON_MINOR_UPGRADE
- 0x00000004
|
Mise à niveau.
|
-
SERVICE_STOP_REASON_MINOR_WMI
- 0x00000012
|
Problème WMI.
|
pszComment
Chaîne facultative qui fournit des informations supplémentaires sur l’arrêt du service. Cette chaîne est stockée dans le journal des événements, ainsi que le code de raison d’arrêt. Ce membre doit être NULL ou une chaîne valide inférieure à 128 caractères, y compris le caractère null de fin.
ServiceStatus
Pointeur vers une structure SERVICE_STATUS_PROCESS qui reçoit les dernières informations d’état du service. Les informations retournées reflètent l’état le plus récent que le service a signalé 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 remplie.
Note
L’en-tête winsvc.h définit SERVICE_CONTROL_STATUS_REASON_PARAMS 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. 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.
Exigences
Exigence |
Valeur |
client minimum pris en charge |
Windows Vista [applications de bureau uniquement] |
serveur minimum pris en charge |
Windows Server 2008 [applications de bureau uniquement] |
d’en-tête |
winsvc.h (inclure Windows.h) |
Voir aussi
ControlServiceEx
SERVICE_STATUS_PROCESS