Contiene parametri di controllo del servizio.
Sintassi
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;
Membri
dwReason
Motivo della modifica dello stato del servizio in SERVICE_CONTROL_STOP. Se il codice di controllo corrente non è SERVICE_CONTROL_STOP, questo membro viene ignorato.
Questo membro deve essere impostato su una combinazione di un codice generale, un codice motivo principale e un codice motivo secondario.
Di seguito sono riportati i codici motivo generali.
| Valore |
Significato |
-
SERVICE_STOP_REASON_FLAG_CUSTOM
- 0x20000000
|
Il codice motivo è definito dall'utente. Se questo flag non è presente, il codice motivo viene definito dal sistema. Se questo flag viene specificato con un codice motivo di sistema, la chiamata di funzione ha esito negativo.
Gli utenti possono creare codici motivo principali personalizzati nell'intervallo SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM (0x00400000) tramite SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM (0x00ff0000) e codici motivo secondari nell'intervallo SERVICE_STOP_REASON_MINOR_MIN_CUSTOM (0x00000100) tramite SERVICE_STOP_REASON_MINOR_MAX_CUSTOM (0x0000FFFF).
|
-
SERVICE_STOP_REASON_FLAG_PLANNED
- 0x40000000
|
L'arresto del servizio è stato pianificato.
|
-
SERVICE_STOP_REASON_FLAG_UNPLANNED
- 0x10000000
|
L'arresto del servizio non è stato pianificato.
|
Di seguito sono riportati i codici motivo principali.
| Valore |
Significato |
-
SERVICE_STOP_REASON_MAJOR_APPLICATION
- 0x00050000
|
Problema dell'applicazione.
|
-
SERVICE_STOP_REASON_MAJOR_HARDWARE
- 0x00020000
|
Problema hardware.
|
-
SERVICE_STOP_REASON_MAJOR_NONE
- 0x00060000
|
Nessun motivo importante.
|
-
SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM
- 0x00030000
|
Problema del sistema operativo.
|
-
SERVICE_STOP_REASON_MAJOR_OTHER
- 0x00010000
|
Altro problema.
|
-
SERVICE_STOP_REASON_MAJOR_SOFTWARE
- 0x00040000
|
Problema software.
|
Di seguito sono riportati i codici motivo secondari.
| Valore |
Significato |
-
SERVICE_STOP_REASON_MINOR_DISK
- 0x00000008
|
Disco.
|
-
SERVICE_STOP_REASON_MINOR_ENVIRONMENT
- 0x0000000a
|
Ambiente.
|
-
SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER
- 0x0000000b
|
Autista.
|
-
SERVICE_STOP_REASON_MINOR_HUNG
- 0x00000006
|
Insensibile.
|
-
SERVICE_STOP_REASON_MINOR_INSTALLATION
- 0x00000003
|
Installazione.
|
-
SERVICE_STOP_REASON_MINOR_MAINTENANCE
- 0x00000002
|
Manutenzione.
|
-
SERVICE_STOP_REASON_MINOR_MMC
- 0x00000016
|
Problema di MMC.
|
-
SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY
- 0x00000011
|
Connettività di rete.
|
-
SERVICE_STOP_REASON_MINOR_NETWORKCARD
- 0x00000009
|
Scheda di rete.
|
-
SERVICE_STOP_REASON_MINOR_NONE
- 0x00060000
|
Nessun motivo secondario.
|
-
SERVICE_STOP_REASON_MINOR_OTHER
- 0x00000001
|
Altro problema.
|
-
SERVICE_STOP_REASON_MINOR_OTHERDRIVER
- 0x0000000c
|
Altro evento driver.
|
-
SERVICE_STOP_REASON_MINOR_RECONFIG
- 0x00000005
|
Riconfigurare.
|
-
SERVICE_STOP_REASON_MINOR_SECURITY
- 0x00000010
|
Problema di sicurezza.
|
-
SERVICE_STOP_REASON_MINOR_SECURITYFIX
- 0x0000000f
|
Aggiornamento della sicurezza.
|
-
SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL
- 0x00000015
|
Disinstallazione dell'aggiornamento della sicurezza.
|
-
SERVICE_STOP_REASON_MINOR_SERVICEPACK
- 0x0000000d
|
Service Pack.
|
-
SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL
- 0x00000013
|
Disinstallazione del Service Pack.
|
-
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE
- 0x0000000e
|
Aggiornamento software.
|
-
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL
- 0x0000000e
|
Disinstallazione dell'aggiornamento software.
|
-
SERVICE_STOP_REASON_MINOR_UNSTABLE
- 0x00000007
|
Instabile.
|
-
SERVICE_STOP_REASON_MINOR_UPGRADE
- 0x00000004
|
Aggiornamento.
|
-
SERVICE_STOP_REASON_MINOR_WMI
- 0x00000012
|
Problema WMI.
|
pszComment
Stringa facoltativa che fornisce informazioni aggiuntive sull'arresto del servizio. Questa stringa viene archiviata nel registro eventi insieme al codice motivo di arresto. Questo membro deve essere NULL o una stringa valida con meno di 128 caratteri, incluso il carattere Null di terminazione.
ServiceStatus
Puntatore a una struttura SERVICE_STATUS_PROCESS che riceve le informazioni sullo stato del servizio più recenti. Le informazioni restituite riflettono lo stato più recente segnalato dal servizio al gestore di controllo del servizio.
La gestione controllo del servizio compila la struttura solo quando ControlServiceEx restituisce uno dei codici di errore seguenti: NO_ERROR, ERROR_INVALID_SERVICE_CONTROL, ERROR_SERVICE_CANNOT_ACCEPT_CTRL o ERROR_SERVICE_NOT_ACTIVE. In caso contrario, la struttura non viene compilata.
Nota
L'intestazione winsvc.h definisce SERVICE_CONTROL_STATUS_REASON_PARAMS come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
| Requisito |
Valore |
|
client minimo supportato |
Windows Vista [solo app desktop] |
|
server minimo supportato |
Windows Server 2008 [solo app desktop] |
| intestazione |
winsvc.h (include Windows.h) |
Vedere anche
ControlServiceEx
SERVICE_STATUS_PROCESS