| Platform SDK: DLLs, Processes, and Threads |
The SERVICE_STATUS_PROCESS structure contains information about a service. The EnumServicesStatusEx and QueryServiceStatusEx functions use this structure to return information about a service.
typedef struct _SERVICE_STATUS_PROCESS {
DWORD dwServiceType;
DWORD dwCurrentState;
DWORD dwControlsAccepted;
DWORD dwWin32ExitCode;
DWORD dwServiceSpecificExitCode;
DWORD dwCheckPoint;
DWORD dwWaitHint;
DWORD dwProcessId;
DWORD dwServiceFlags;
} SERVICE_STATUS_PROCESS, *LPSERVICE_STATUS_PROCESS;
| Value | Meaning |
|---|---|
| SERVICE_WIN32_OWN_PROCESS | A service type flag that indicates a service that runs in its own process. |
| SERVICE_WIN32_SHARE_PROCESS | A service type flag that indicates a service that shares a process with other services. |
| SERVICE_KERNEL_DRIVER | A service type flag that indicates a device driver. |
| SERVICE_FILE_SYSTEM_DRIVER | A service type flag that indicates a file system driver. |
| SERVICE_INTERACTIVE_PROCESS | A flag that indicates a service that can interact with the desktop. |
| Value | Meaning |
|---|---|
| SERVICE_STOPPED | The service is not running. |
| SERVICE_START_PENDING | The service is starting. |
| SERVICE_STOP_PENDING | The service is stopping. |
| SERVICE_RUNNING | The service is running. |
| SERVICE_CONTINUE_PENDING | The service continue is pending. |
| SERVICE_PAUSE_PENDING | The service pause is pending. |
| SERVICE_PAUSED | The service is paused. |
| Value | Meaning |
|---|---|
| SERVICE_ACCEPT_STOP | The service can be stopped. This flag allows the service to receive the SERVICE_CONTROL_STOP value. |
| SERVICE_ACCEPT_PAUSE_CONTINUE | The service can be paused and continued. This flag allows the service to receive the SERVICE_CONTROL_PAUSE and SERVICE_CONTROL_CONTINUE values. |
| SERVICE_ACCEPT_SHUTDOWN | The service is notified when the system shuts down. This flag allows the service to receive the SERVICE_CONTROL_SHUTDOWN value.
Note that ControlService cannot send this control code; only the system can send SERVICE_CONTROL_SHUTDOWN. |
| SERVICE_ACCEPT_PARAMCHANGE | The service can reread its startup parameters without being stopped and restarted. This enables the system to send a SERVICE_CONTROL_PARAMCHANGE value to the service. |
| SERVICE_ACCEPT_NETBINDCHANGE | The service is a network component that can accept changes in its binding without being stopped and restarted. This enables the system to send the SERVICE_CONTROL_NETBINDADD, SERVICE_CONTROL_NETBINDREMOVE, SERVICE_CONTROL_NETBINDENABLE, and SERVICE_CONTROL_NETBINDDISABLE values to the service. |
| SERVICE_ACCEPT_HARDWAREPROFILECHANGE | The service is notified when the computer's hardware profile has changed. This enables the system to send a SERVICE_CONTROL_HARDWAREPROFILECHANGE value to the service. The service receives this value only if it has called the RegisterServiceCtrlHandlerEx function. The ControlService function cannot send this control code. |
| SERVICE_ACCEPT_POWER_EVENT | The service is notified when the computer's power status has changed. This enables the system to send a SERVICE_CONTROL_POWER_EVENT value to the service. The service receives this value only if it has called the RegisterServiceCtrlHandlerEx function. The ControlService function cannot send this control code. |
| Value | Meaning |
|---|---|
| 0 | The service is running in a process that is not a system process, or it is not running.
If the service is running in a process that is not a system process, dwProcessId is nonzero. If the service is not running, dwProcessId is zero. |
| SERVICE_RUNS_IN_SYSTEM_PROCESS | The service runs in a system process that must always be running. |
Windows NT/2000: Requires Windows 2000.
Header: Declared in Winsvc.h; include Windows.h.
Services Overview, Service Structures, EnumServicesStatusEx, QueryServiceStatusEx