estrutura SERVICE_CONTROL_STATUS_REASON_PARAMSA (winsvc.h)

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 serviço status 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 secundário.

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
Disk.
SERVICE_STOP_REASON_MINOR_ENVIRONMENT
0x0000000a
Ambiente.
SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER
0x0000000b
Driver.
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
Atualização.
SERVICE_STOP_REASON_MINOR_WMI
0x00000012
Problema de 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 com menos de 128 caracteres, incluindo o caractere nulo de terminação.

ServiceStatus

Um ponteiro para uma estrutura SERVICE_STATUS_PROCESS que recebe as informações de status de serviço mais recentes. As informações retornadas refletem as status mais recentes 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.

Comentários

Observação

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 de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho winsvc.h (incluir Windows.h)

Confira também

ControlServiceEx

SERVICE_STATUS_PROCESS