Platform SDK: DLLs, Processes, and Threads |
The SERVICE_STATUS structure contains information about a service. The ControlService, EnumDependentServices, EnumServicesStatus, and QueryServiceStatus functions use this structure to return information about a service. A service uses this structure in the SetServiceStatus function to report its current status to the service control manager.
typedef struct _SERVICE_STATUS { DWORD dwServiceType; DWORD dwCurrentState; DWORD dwControlsAccepted; DWORD dwWin32ExitCode; DWORD dwServiceSpecificExitCode; DWORD dwCheckPoint; DWORD dwWaitHint; } SERVICE_STATUS, *LPSERVICE_STATUS;
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. |
Control code | 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 system shutdown occurs. 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 | Windows 2000: The service can reread its startup parameters without being stopped and restarted. This flag allows the service to receive the SERVICE_CONTROL_PARAMCHANGE value. |
SERVICE_ACCEPT_NETBINDCHANGE | Windows 2000: The service is a network component that can accept changes in its binding without being stopped and restarted. This flag allows the service to receive the SERVICE_CONTROL_NETBINDADD, SERVICE_CONTROL_NETBINDREMOVE, SERVICE_CONTROL_NETBINDENABLE, and SERVICE_CONTROL_NETBINDDISABLE values. |
SERVICE_ACCEPT_HARDWAREPROFILECHANGE | Windows 2000: 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_POWEREVENT | Windows 2000: The service is notified when the computer's power status has changed. This enables the system to send a SERVICE_CONTROL_POWEREVENT 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. |
Windows NT/2000: Requires Windows NT 3.1 or later.
Header: Declared in Winsvc.h; include Windows.h.
Services Overview, Service Structures, ControlService, EnumDependentServices, EnumServicesStatus, QueryServiceStatus, SetServiceStatus