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).
  • Retomar 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ção ControlService . O membro dwControlsAccepted da estrutura 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 os status mais recentes para um serviço especificado, mas não obtém uma status atualizada 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.

Controlando um serviço usando SC