Solicitudes de control de servicio

Para enviar solicitudes de control a un servicio en ejecución, un programa de control de servicio usa la función ControlService . Esta función especifica un valor de control que se pasa a la función HandlerEx del servicio especificado. Este valor de control puede ser un código definido por el usuario o puede ser uno de los códigos estándar que permiten al programa de llamada realizar las siguientes acciones:

  • Detenga un servicio (SERVICE_CONTROL_STOP).
  • Pausar un servicio (SERVICE_CONTROL_PAUSE).
  • Reanude la ejecución de un servicio en pausa (SERVICE_CONTROL_CONTINUE).
  • Recupere la información de estado actualizada de un servicio (SERVICE_CONTROL_INTERROGATE).

Cada servicio especifica los valores de control que aceptará y procesará. Para determinar cuáles de los valores de control estándar son aceptados por un servicio, use la función QueryServiceStatusEx o especifique el valor de control SERVICE_CONTROL_INTERROGATE en una llamada a la función ControlService . El miembro dwControlsAccepted de la estructura SERVICE_STATUS devuelta por estas funciones indica si el servicio se puede detener, pausar o reanudar. Todos los servicios aceptan el valor de control SERVICE_CONTROL_INTERROGATE.

La función QueryServiceStatusEx notifica el estado más reciente de un servicio especificado, pero no obtiene un estado actualizado del propio servicio. El uso del valor de control SERVICE_CONTROL_INTERROGATE en una llamada a ControlService garantiza que la información de estado devuelta esté actualizada.

Control de un servicio mediante SC