Compartilhar via


Solicitações de controle de serviço

Para enviar solicitações de controle para um serviço em execução, um programa de controle de serviço usa a função ControlService. Essa função especifica um valor de controle que é passado para a função HandlerEx do serviço especificado. Esse valor de controle pode ser um código definido pelo usuário ou pode ser um dos códigos padrão que permitem que o programa de chamada execute as seguintes ações:

  • Parar um serviço (SERVICE_CONTROL_STOP).
  • Pausar um serviço (SERVICE_CONTROL_PAUSE).
  • Retome a execução de um serviço em pausa (SERVICE_CONTROL_CONTINUE).
  • Recuperar informações de status atualizadas de um serviço (SERVICE_CONTROL_INTERROGATE).

Cada serviço especifica os valores de controle que ele aceitará e processará. Para determinar quais dos valores de controle padrão são aceitos por um serviço, use a função QueryServiceStatusEx ou especifique o valor de controle SERVICE_CONTROL_INTERROGATE em uma chamada para a funçãoControlService. O dwControlsAccepted membro da estrutura de SERVICE_STATUS retornada por essas funções indica se o serviço pode ser interrompido, pausado ou retomado. Todos os serviços aceitam o valor de controle SERVICE_CONTROL_INTERROGATE.

A função QueryServiceStatusEx relata o status mais recente de um serviço especificado, mas não obtém um status atualizado do próprio serviço. Usar o valor de controle SERVICE_CONTROL_INTERROGATE em uma chamada para ControlService garante que as informações de status retornadas sejam atuais.

controlar um serviço usando SC