Contém parâmetros de controle de serviço.
Sintaxe
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;
Membros
dwReason
O motivo para alterar o status do serviço para SERVICE_CONTROL_STOP. Se o código de controle atual não for SERVICE_CONTROL_STOP, esse membro será ignorado.
Esse membro deve ser definido como uma combinação de um código geral, um código de motivo principal e um código de motivo menor.
Veja a seguir os códigos de motivo geral.
| Valor |
Significado |
-
SERVICE_STOP_REASON_FLAG_CUSTOM
- 0x20000000
|
O código de motivo é definido pelo usuário. Se esse sinalizador não estiver presente, o código de motivo será definido pelo sistema. Se esse sinalizador for especificado com um código de motivo do sistema, a chamada de função falhará.
Os usuários podem criar códigos de motivo principal personalizados no intervalo SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM (0x00400000) por meio de SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM (0x00ff0000) e códigos de motivo secundários no intervalo SERVICE_STOP_REASON_MINOR_MIN_CUSTOM (0x00000100) até SERVICE_STOP_REASON_MINOR_MAX_CUSTOM (0x0000FFFF).
|
-
SERVICE_STOP_REASON_FLAG_PLANNED
- 0x40000000
|
A parada de serviço foi planejada.
|
-
SERVICE_STOP_REASON_FLAG_UNPLANNED
- 0x10000000
|
A parada de serviço não foi planejada.
|
Veja a seguir os principais códigos de motivo.
| Valor |
Significado |
-
SERVICE_STOP_REASON_MAJOR_APPLICATION
- 0x00050000
|
Problema do aplicativo.
|
-
SERVICE_STOP_REASON_MAJOR_HARDWARE
- 0x00020000
|
Problema de hardware.
|
-
SERVICE_STOP_REASON_MAJOR_NONE
- 0x00060000
|
Nenhuma razão importante.
|
-
SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM
- 0x00030000
|
Problema do sistema operacional.
|
-
SERVICE_STOP_REASON_MAJOR_OTHER
- 0x00010000
|
Outro problema.
|
-
SERVICE_STOP_REASON_MAJOR_SOFTWARE
- 0x00040000
|
Problema de software.
|
Veja a seguir os códigos de motivo secundários.
| Valor |
Significado |
-
SERVICE_STOP_REASON_MINOR_DISK
- 0x00000008
|
Disco.
|
-
SERVICE_STOP_REASON_MINOR_ENVIRONMENT
- 0x0000000a
|
Ambiente.
|
-
SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER
- 0x0000000b
|
Motorista.
|
-
SERVICE_STOP_REASON_MINOR_HUNG
- 0x00000006
|
Responder.
|
-
SERVICE_STOP_REASON_MINOR_INSTALLATION
- 0x00000003
|
Instalação.
|
-
SERVICE_STOP_REASON_MINOR_MAINTENANCE
- 0x00000002
|
Manutenção.
|
-
SERVICE_STOP_REASON_MINOR_MMC
- 0x00000016
|
Problema do MMC.
|
-
SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY
- 0x00000011
|
Conectividade de rede.
|
-
SERVICE_STOP_REASON_MINOR_NETWORKCARD
- 0x00000009
|
Cartão de rede.
|
-
SERVICE_STOP_REASON_MINOR_NONE
- 0x00060000
|
Nenhuma razão menor.
|
-
SERVICE_STOP_REASON_MINOR_OTHER
- 0x00000001
|
Outro problema.
|
-
SERVICE_STOP_REASON_MINOR_OTHERDRIVER
- 0x0000000c
|
Outro evento de driver.
|
-
SERVICE_STOP_REASON_MINOR_RECONFIG
- 0x00000005
|
Reconfigurar.
|
-
SERVICE_STOP_REASON_MINOR_SECURITY
- 0x00000010
|
Problema de segurança.
|
-
SERVICE_STOP_REASON_MINOR_SECURITYFIX
- 0x0000000f
|
Atualização de segurança.
|
-
SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL
- 0x00000015
|
Desinstalação da atualização de segurança.
|
-
SERVICE_STOP_REASON_MINOR_SERVICEPACK
- 0x0000000d
|
Service pack.
|
-
SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL
- 0x00000013
|
Desinstalação do service pack.
|
-
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE
- 0x0000000e
|
Atualização de software.
|
-
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL
- 0x0000000e
|
Desinstalação da atualização de software.
|
-
SERVICE_STOP_REASON_MINOR_UNSTABLE
- 0x00000007
|
Instável.
|
-
SERVICE_STOP_REASON_MINOR_UPGRADE
- 0x00000004
|
Melhoramento.
|
-
SERVICE_STOP_REASON_MINOR_WMI
- 0x00000012
|
Problema do WMI.
|
pszComment
Uma cadeia de caracteres opcional que fornece informações adicionais sobre a parada de serviço. Essa cadeia de caracteres é armazenada no log de eventos junto com o código de motivo de parada. Esse membro deve ser NULL ou uma cadeia de caracteres válida menor que 128 caracteres, incluindo o caractere nulo de encerramento.
ServiceStatus
Um ponteiro para uma estrutura de SERVICE_STATUS_PROCESS que recebe as informações mais recentes de status do serviço. As informações retornadas refletem o status mais recente que o serviço relatou ao gerenciador de controle de serviço.
O gerenciador de controle de serviço preenche a estrutura somente quando ControlServiceEx retorna um dos seguintes códigos de erro: NO_ERROR, ERROR_INVALID_SERVICE_CONTROL, ERROR_SERVICE_CANNOT_ACCEPT_CTRL ou ERROR_SERVICE_NOT_ACTIVE. Caso contrário, a estrutura não será preenchida.
Nota
O cabeçalho winsvc.h define SERVICE_CONTROL_STATUS_REASON_PARAMS como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
| Requisito |
Valor |
|
de cliente com suporte mínimo |
Windows Vista [somente aplicativos da área de trabalho] |
|
servidor com suporte mínimo |
Windows Server 2008 [somente aplicativos da área de trabalho] |
| cabeçalho |
winsvc.h (incluir Windows.h) |
Consulte também
ControlServiceEx
SERVICE_STATUS_PROCESS