Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
To send control requests to a running service, a service control program uses the ControlService function. This function specifies a control value that is passed to the HandlerEx function of the specified service. This control value can be a user-defined code, or it can be one of the standard codes that enable the calling program to perform the following actions:
- Stop a service (SERVICE_CONTROL_STOP).
- Pause a service (SERVICE_CONTROL_PAUSE).
- Resume executing a paused service (SERVICE_CONTROL_CONTINUE).
- Retrieve updated status information from a service (SERVICE_CONTROL_INTERROGATE).
Each service specifies the control values that it will accept and process. To determine which of the standard control values are accepted by a service, use the QueryServiceStatusEx function or specify the SERVICE_CONTROL_INTERROGATE control value in a call to the ControlService function. The dwControlsAccepted member of the SERVICE_STATUS structure returned by these functions indicates whether the service can be stopped, paused, or resumed. All services accept the SERVICE_CONTROL_INTERROGATE control value.
The QueryServiceStatusEx function reports the most recent status for a specified service, but does not get an updated status from the service itself. Using the SERVICE_CONTROL_INTERROGATE control value in a call to ControlService ensures that the status information returned is current.
Related topics