Freigeben über


SERVICE_CONTROL_STATUS_REASON_PARAMSW-Struktur (winsvc.h)

Enthält Dienststeuerungsparameter.

Syntax

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;

Member

dwReason

Der Grund für die Änderung des Diensts status in SERVICE_CONTROL_STOP. Wenn der aktuelle Steuerelementcode nicht SERVICE_CONTROL_STOP ist, wird dieser Member ignoriert.

Dieser Member muss auf eine Kombination aus einem allgemeinen Code, einem Hauptursachencode und einem Nebengrundcode festgelegt werden.

Im Folgenden sind die allgemeinen Grundcodes aufgeführt.

Wert Bedeutung
SERVICE_STOP_REASON_FLAG_CUSTOM
0x20000000
Der Grundcode wird vom Benutzer definiert. Wenn dieses Flag nicht vorhanden ist, wird der Grundcode vom System definiert. Wenn dieses Flag mit einem Systemursachencode angegeben wird, schlägt der Funktionsaufruf fehl.

Benutzer können benutzerdefinierte Hauptursachencodes im Bereich SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM (0x00400000) bis SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM (0x00ff0000) und Nebenursachencodes im Bereich SERVICE_STOP_REASON_MINOR_MIN_CUSTOM (0x00000100) bis SERVICE_STOP_REASON_MINOR_MAX_CUSTOM (0x0000FFFF) erstellen.

SERVICE_STOP_REASON_FLAG_PLANNED
0x40000000
Der Dienststopp war geplant.
SERVICE_STOP_REASON_FLAG_UNPLANNED
0x10000000
Der Dienststopp war nicht geplant.
 

Im Folgenden sind die wichtigsten Ursachencodes aufgeführt.

Wert Bedeutung
SERVICE_STOP_REASON_MAJOR_APPLICATION
0x00050000
Anwendungsproblem.
SERVICE_STOP_REASON_MAJOR_HARDWARE
0x00020000
Hardwareproblem.
SERVICE_STOP_REASON_MAJOR_NONE
0x00060000
Kein wichtiger Grund.
SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM
0x00030000
Betriebssystemproblem.
SERVICE_STOP_REASON_MAJOR_OTHER
0x00010000
Anderes Problem.
SERVICE_STOP_REASON_MAJOR_SOFTWARE
0x00040000
Softwareproblem.
 

Im Folgenden sind die Nebenursachencodes aufgeführt.

Wert Bedeutung
SERVICE_STOP_REASON_MINOR_DISK
0x00000008
auswählen.
SERVICE_STOP_REASON_MINOR_ENVIRONMENT
0x0000000a
Umgebung.
SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER
0x0000000b
Treiber.
SERVICE_STOP_REASON_MINOR_HUNG
0x00000006
Reagiert.
SERVICE_STOP_REASON_MINOR_INSTALLATION
0x00000003
Die Installation.
SERVICE_STOP_REASON_MINOR_MAINTENANCE
0x00000002
Wartung.
SERVICE_STOP_REASON_MINOR_MMC
0x00000016
MMC-Problem.
SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY
0x00000011
Netzwerkkonnektivität
SERVICE_STOP_REASON_MINOR_NETWORKCARD
0x00000009
Netzwerk Karte.
SERVICE_STOP_REASON_MINOR_NONE
0x00060000
Kein kleiner Grund.
SERVICE_STOP_REASON_MINOR_OTHER
0x00000001
Anderes Problem.
SERVICE_STOP_REASON_MINOR_OTHERDRIVER
0x0000000c
Anderes Treiberereignis.
SERVICE_STOP_REASON_MINOR_RECONFIG
0x00000005
Konfigurieren.
SERVICE_STOP_REASON_MINOR_SECURITY
0x00000010
Sicherheitsproblem.
SERVICE_STOP_REASON_MINOR_SECURITYFIX
0x0000000f
Sicherheitsupdate.
SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL
0x00000015
Sicherheitsupdate deinstallieren.
SERVICE_STOP_REASON_MINOR_SERVICEPACK
0x0000000d
Service Pack.
SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL
0x00000013
Service Pack-Deinstallation.
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE
0x0000000e
Softwareupdate.
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL
0x0000000e
Softwareupdate deinstallieren.
SERVICE_STOP_REASON_MINOR_UNSTABLE
0x00000007
Instabil.
SERVICE_STOP_REASON_MINOR_UPGRADE
0x00000004
Upgrade:
SERVICE_STOP_REASON_MINOR_WMI
0x00000012
WMI-Problem.

pszComment

Eine optionale Zeichenfolge, die zusätzliche Informationen zum Dienststopp bereitstellt. Diese Zeichenfolge wird zusammen mit dem Code für die Beendigungsursache im Ereignisprotokoll gespeichert. Dieser Member muss NULL oder eine gültige Zeichenfolge sein, die kleiner als 128 Zeichen ist, einschließlich des abschließenden NULL-Zeichens.

ServiceStatus

Ein Zeiger auf eine SERVICE_STATUS_PROCESS-Struktur, die die neuesten Dienst- status Informationen empfängt. Die zurückgegebenen Informationen spiegeln die letzten status wider, die der Dienst dem Dienststeuerungs-Manager gemeldet hat.

Der Dienststeuerungs-Manager füllt die Struktur nur aus, wenn ControlServiceEx einen der folgenden Fehlercodes zurückgibt: NO_ERROR, ERROR_INVALID_SERVICE_CONTROL, ERROR_SERVICE_CANNOT_ACCEPT_CTRL oder ERROR_SERVICE_NOT_ACTIVE. Andernfalls wird die Struktur nicht ausgefüllt.

Hinweise

Hinweis

Der winsvc.h-Header definiert SERVICE_CONTROL_STATUS_REASON_PARAMS als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Kopfzeile winsvc.h (windows.h einschließen)

Weitere Informationen

ControlServiceEx

SERVICE_STATUS_PROCESS