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.
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.