Der Grund für die Änderung des Dienststatus in SERVICE_CONTROL_STOP. Wenn der aktuelle Steuerelementcode nicht SERVICE_CONTROL_STOP ist, wird dieses Element ignoriert.
Dieses Element muss auf eine Kombination aus einem allgemeinen Code, einem Hauptgrundcode und einem Nebengrundcode festgelegt werden.
Im Folgenden finden Sie die allgemeinen Grundcodes.
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 Systemgrundcode angegeben wird, schlägt der Funktionsaufruf fehl.
Benutzer können benutzerdefinierte Hauptgrundcodes im Bereich SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM (0x00400000) über SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM (0x00ff0000) und Nebengrundcodes im Bereich SERVICE_STOP_REASON_MINOR_MIN_CUSTOM (0x00000100) bis SERVICE_STOP_REASON_MINOR_MAX_CUSTOM (0x0000FFFF) erstellen.
Eine optionale Zeichenfolge, die zusätzliche Informationen zum Dienststopp bereitstellt. Diese Zeichenfolge wird zusammen mit dem Stoppgrundcode im Ereignisprotokoll gespeichert. Dieses Element muss NULL- oder einer gültigen Zeichenfolge sein, die kleiner als 128 Zeichen ist, einschließlich des endenden Nullzeichens.
ServiceStatus
Ein Zeiger auf eine SERVICE_STATUS_PROCESS-Struktur, die die neuesten Dienststatusinformationen empfängt. Die zurückgegebenen Informationen spiegeln den neuesten Status wider, den 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.
Bemerkungen
Anmerkung
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.