struttura SERVICE_CONTROL_STATUS_REASON_PARAMSA (winsvc.h)

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;

Members

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) attraverso 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 principale.
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
Disk (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 del 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 inferiore a 128 caratteri, incluso il carattere Null terminante.

ServiceStatus

Puntatore a una struttura SERVICE_STATUS_PROCESS che riceve le informazioni più recenti sullo stato del servizio. Le informazioni restituite riflettono lo stato più recente segnalato al gestore del 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.

Commenti

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 preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

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)

Vedi anche

ControlServiceEx

SERVICE_STATUS_PROCESS