Partager via


structure SERVICE_CONTROL_STATUS_REASON_PARAMSW (winsvc.h)

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

Syntaxe

typedef struct _SERVICE_CONTROL_STATUS_REASON_PARAMSW {
  DWORD                  dwReason;
  LPWSTR                 pszComment;
  SERVICE_STATUS_PROCESS ServiceStatus;
} SERVICE_CONTROL_STATUS_REASON_PARAMSW, *PSERVICE_CONTROL_STATUS_REASON_PARAMSW;

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.

Remarques

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