ReactOS 0.4.16-dev-2331-gc9e73b6
winsvc.h
Go to the documentation of this file.
1/*
2 * Copyright (C) the Wine project
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#ifndef __WINE_WINSVC_H
20#define __WINE_WINSVC_H
21
22#ifdef __cplusplus
23extern "C" {
24#endif /* defined(__cplusplus) */
25
26#ifndef WINADVAPI
27#ifdef _ADVAPI32_
28#define WINADVAPI
29#else
30#define WINADVAPI DECLSPEC_IMPORT
31#endif
32#endif
33
34/* Service database names */
35#define SERVICES_ACTIVE_DATABASEA "ServicesActive"
36#define SERVICES_FAILED_DATABASEA "ServicesFailed"
37
38#if defined(_MSC_VER) || defined(__MINGW32__)
39# define SERVICES_ACTIVE_DATABASEW L"ServicesActive"
40# define SERVICES_FAILED_DATABASEW L"ServicesFailed"
41#else
42static const WCHAR SERVICES_ACTIVE_DATABASEW[] = { 'S','e','r','v','i','c','e','s','A','c','t','i','v','e',0 };
43static const WCHAR SERVICES_FAILED_DATABASEW[] = { 'S','e','r','v','i','c','e','s','F','a','i','l','e','d',0 };
44#endif
45
46#define SERVICES_ACTIVE_DATABASE WINELIB_NAME_AW( SERVICES_ACTIVE_DATABASE )
47#define SERVICES_FAILED_DATABASE WINELIB_NAME_AW( SERVICES_FAILED_DATABASE )
48
49/* Service State requests */
50#define SERVICE_ACTIVE 0x00000001
51#define SERVICE_INACTIVE 0x00000002
52#define SERVICE_STATE_ALL (SERVICE_ACTIVE | SERVICE_INACTIVE)
53
54/* Controls */
55#define SERVICE_CONTROL_STOP 0x00000001
56#define SERVICE_CONTROL_PAUSE 0x00000002
57#define SERVICE_CONTROL_CONTINUE 0x00000003
58#define SERVICE_CONTROL_INTERROGATE 0x00000004
59#define SERVICE_CONTROL_SHUTDOWN 0x00000005
60#define SERVICE_CONTROL_PARAMCHANGE 0x00000006
61#define SERVICE_CONTROL_NETBINDADD 0x00000007
62#define SERVICE_CONTROL_NETBINDREMOVE 0x00000008
63#define SERVICE_CONTROL_NETBINDENABLE 0x00000009
64#define SERVICE_CONTROL_NETBINDDISABLE 0x0000000A
65#define SERVICE_CONTROL_DEVICEEVENT 0x0000000B
66#define SERVICE_CONTROL_HARDWAREPROFILECHANGE 0x0000000C
67#define SERVICE_CONTROL_POWEREVENT 0x0000000D
68#define SERVICE_CONTROL_SESSIONCHANGE 0x0000000E
69#define SERVICE_CONTROL_PRESHUTDOWN 0x0000000F
70
71/* Service State */
72#define SERVICE_STOPPED 0x00000001
73#define SERVICE_START_PENDING 0x00000002
74#define SERVICE_STOP_PENDING 0x00000003
75#define SERVICE_RUNNING 0x00000004
76#define SERVICE_CONTINUE_PENDING 0x00000005
77#define SERVICE_PAUSE_PENDING 0x00000006
78#define SERVICE_PAUSED 0x00000007
79
80/* Controls Accepted */
81#define SERVICE_ACCEPT_STOP 0x00000001
82#define SERVICE_ACCEPT_PAUSE_CONTINUE 0x00000002
83#define SERVICE_ACCEPT_SHUTDOWN 0x00000004
84#define SERVICE_ACCEPT_PARAMCHANGE 0x00000008
85#define SERVICE_ACCEPT_NETBINDCHANGE 0x00000010
86#define SERVICE_ACCEPT_HARDWAREPROFILECHANGE 0x00000020
87#define SERVICE_ACCEPT_POWEREVENT 0x00000040
88#define SERVICE_ACCEPT_SESSIONCHANGE 0x00000080
89#define SERVICE_ACCEPT_PRESHUTDOWN 0x00000100
90#define SERVICE_ACCEPT_TIMECHANGE 0x00000200
91#define SERVICE_ACCEPT_TRIGGEREVENT 0x00000400
92
93/* Service Control Manager Object access types */
94#define SC_MANAGER_CONNECT 0x0001
95#define SC_MANAGER_CREATE_SERVICE 0x0002
96#define SC_MANAGER_ENUMERATE_SERVICE 0x0004
97#define SC_MANAGER_LOCK 0x0008
98#define SC_MANAGER_QUERY_LOCK_STATUS 0x0010
99#define SC_MANAGER_MODIFY_BOOT_CONFIG 0x0020
100#define SC_MANAGER_ALL_ACCESS ( STANDARD_RIGHTS_REQUIRED | \
101 SC_MANAGER_CONNECT | \
102 SC_MANAGER_CREATE_SERVICE | \
103 SC_MANAGER_ENUMERATE_SERVICE | \
104 SC_MANAGER_LOCK | \
105 SC_MANAGER_QUERY_LOCK_STATUS | \
106 SC_MANAGER_MODIFY_BOOT_CONFIG )
107
108#define SERVICE_QUERY_CONFIG 0x0001
109#define SERVICE_CHANGE_CONFIG 0x0002
110#define SERVICE_QUERY_STATUS 0x0004
111#define SERVICE_ENUMERATE_DEPENDENTS 0x0008
112#define SERVICE_START 0x0010
113#define SERVICE_STOP 0x0020
114#define SERVICE_PAUSE_CONTINUE 0x0040
115#define SERVICE_INTERROGATE 0x0080
116#define SERVICE_USER_DEFINED_CONTROL 0x0100
117
118#define SERVICE_ALL_ACCESS ( STANDARD_RIGHTS_REQUIRED | \
119 SERVICE_QUERY_CONFIG | \
120 SERVICE_CHANGE_CONFIG | \
121 SERVICE_QUERY_STATUS | \
122 SERVICE_ENUMERATE_DEPENDENTS | \
123 SERVICE_START | \
124 SERVICE_STOP | \
125 SERVICE_PAUSE_CONTINUE | \
126 SERVICE_INTERROGATE | \
127 SERVICE_USER_DEFINED_CONTROL )
128
129#define SERVICE_NO_CHANGE 0xffffffff
130
131#define SERVICE_RUNS_IN_SYSTEM_PROCESS 0x00000001
132
133/* Handle types */
134
135DECLARE_HANDLE(SC_HANDLE);
136typedef SC_HANDLE *LPSC_HANDLE;
139
140/* Service status structure */
141
142typedef struct _SERVICE_STATUS {
151
152/* Service status process structure */
153
154typedef struct _SERVICE_STATUS_PROCESS
155{
166
167#define SERVICE_NOTIFY_STATUS_CHANGE 2
168
169#define SERVICE_NOTIFY_STOPPED 0x1
170#define SERVICE_NOTIFY_START_PENDING 0x2
171#define SERVICE_NOTIFY_STOP_PENDING 0x4
172#define SERVICE_NOTIFY_RUNNING 0x8
173#define SERVICE_NOTIFY_CONTINUE_PENDING 0x10
174#define SERVICE_NOTIFY_PAUSE_PENDING 0x20
175#define SERVICE_NOTIFY_PAUSED 0x40
176#define SERVICE_NOTIFY_CREATED 0x80
177#define SERVICE_NOTIFY_DELETED 0x100
178#define SERVICE_NOTIFY_DELETE_PENDING 0x200
179
181
182typedef struct _SERVICE_NOTIFY_2A {
185 void *pContext;
191
192typedef struct _SERVICE_NOTIFY_2W {
195 void *pContext;
201
202typedef enum _SC_STATUS_TYPE {
205
206/* Service main function prototype */
207
211
212/* Service start table */
213
214typedef struct _SERVICE_TABLE_ENTRYA {
218
219typedef struct _SERVICE_TABLE_ENTRYW {
223
226
227/* Service status enumeration structure */
228
229typedef struct _ENUM_SERVICE_STATUSA {
234
235typedef struct _ENUM_SERVICE_STATUSW {
240
243
244typedef struct _ENUM_SERVICE_STATUS_PROCESSA {
249
250typedef struct _ENUM_SERVICE_STATUS_PROCESSW {
255
258
262
263typedef struct _QUERY_SERVICE_CONFIGA {
274
275typedef struct _QUERY_SERVICE_CONFIGW {
286
287/* defines and structures for ChangeServiceConfig2 */
288#define SERVICE_CONFIG_DESCRIPTION 1
289#define SERVICE_CONFIG_FAILURE_ACTIONS 2
290#define SERVICE_CONFIG_DELAYED_AUTO_START_INFO 3
291#define SERVICE_CONFIG_FAILURE_ACTIONS_FLAG 4
292#define SERVICE_CONFIG_SERVICE_SID_INFO 5
293#define SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO 6
294#define SERVICE_CONFIG_PRESHUTDOWN_INFO 7
295
296
297typedef struct _SERVICE_DESCRIPTIONA {
300
301typedef struct _SERVICE_DESCRIPTIONW {
304
307
314
315typedef struct _SC_ACTION {
317 DWORD Delay;
319
320typedef struct _SERVICE_FAILURE_ACTIONSA {
327
328typedef struct _SERVICE_FAILURE_ACTIONSW {
335
338
342
343typedef struct _SERVICE_FAILURE_ACTIONS_FLAG {
346
347typedef struct _SERVICE_SID_INFO {
350
354
358
361
362typedef struct _SERVICE_PRESHUTDOWN_INFO {
365
366typedef struct _QUERY_SERVICE_LOCK_STATUSA
367{
372
373typedef struct _QUERY_SERVICE_LOCK_STATUSW
374{
379
381
382/* Service control handler function prototype */
383
386
387/* API function prototypes */
388
391#define ChangeServiceConfig WINELIB_NAME_AW(ChangeServiceConfig)
394#define ChangeServiceConfig2 WINELIB_NAME_AW(ChangeServiceConfig2)
399#define CreateService WINELIB_NAME_AW(CreateService)
403#define EnumDependentServices WINELIB_NAME_AW(EnumDependentServices)
406#define EnumServicesStatus WINELIB_NAME_AW(EnumServicesStatus)
409#define EnumServicesStatus WINELIB_NAME_AW(EnumServicesStatus)
412#define GetServiceDisplayName WINELIB_NAME_AW(GetServiceDisplayName)
415#define GetServiceKeyName WINELIB_NAME_AW(GetServiceKeyName)
421#define OpenSCManager WINELIB_NAME_AW(OpenSCManager)
422WINADVAPI SC_HANDLE WINAPI OpenServiceA(SC_HANDLE,LPCSTR,DWORD);
423WINADVAPI SC_HANDLE WINAPI OpenServiceW(SC_HANDLE,LPCWSTR,DWORD);
424#define OpenService WINELIB_NAME_AW(OpenService)
429#define QueryServiceConfig WINELIB_NAME_AW(QueryServiceConfig)
432#define QueryServiceConfig2 WINELIB_NAME_AW(QueryServiceConfig2)
435#define QueryServiceLockStatus WINELIB_NAME_AW(QueryServiceLockStatus)
439#define RegisterServiceCtrlHandler WINELIB_NAME_AW(RegisterServiceCtrlHandler)
442#define RegisterServiceCtrlHandlerEx WINELIB_NAME_AW(RegisterServiceCtrlHandlerEx)
447#define StartService WINELIB_NAME_AW(StartService)
450#define StartServiceCtrlDispatcher WINELIB_NAME_AW(StartServiceCtrlDispatcher)
452
453#ifdef __cplusplus
454} /* extern "C" */
455#endif /* defined(__cplusplus) */
456
457#endif /* !defined(__WINE_WINSVC_H) */
static SERVICE_STATUS_HANDLE(WINAPI *pRegisterServiceCtrlHandlerExA)(LPCSTR
#define VOID
Definition: acefi.h:82
#define CALLBACK
Definition: compat.h:35
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
#define DECLARE_HANDLE(name)
Definition: mimeole.idl:23
DWORD SECURITY_INFORMATION
Definition: ms-dtyp.idl:311
#define DWORD
Definition: nt_native.h:44
struct _QUERY_SERVICE_CONFIGW * LPQUERY_SERVICE_CONFIGW
struct _QUERY_SERVICE_LOCK_STATUSW QUERY_SERVICE_LOCK_STATUSW
PVOID SC_LOCK
Definition: winsvc.h:194
BOOL WINAPI DeleteService(_In_ SC_HANDLE)
struct _SERVICE_DESCRIPTIONA SERVICE_DESCRIPTIONA
struct _ENUM_SERVICE_STATUS_PROCESSA ENUM_SERVICE_STATUS_PROCESSA
_Must_inspect_result_ SC_HANDLE WINAPI OpenSCManagerA(_In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_ DWORD)
BOOL WINAPI StartServiceCtrlDispatcherW(_In_ const SERVICE_TABLE_ENTRYW *)
struct _SERVICE_FAILURE_ACTIONSW SERVICE_FAILURE_ACTIONSW
SERVICE_NOTIFY_2A SERVICE_NOTIFYA
Definition: winsvc.h:263
BOOL WINAPI NotifyBootConfigStatus(_In_ BOOL)
_Must_inspect_result_ SC_HANDLE WINAPI CreateServiceA(_In_ SC_HANDLE, _In_ LPCSTR, _In_opt_ LPCSTR, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPCSTR, _In_opt_ LPCSTR, _Out_opt_ PDWORD, _In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPCSTR)
struct _QUERY_SERVICE_LOCK_STATUSA * LPQUERY_SERVICE_LOCK_STATUSA
struct _QUERY_SERVICE_LOCK_STATUSA QUERY_SERVICE_LOCK_STATUSA
struct _SERVICE_TABLE_ENTRYW * LPSERVICE_TABLE_ENTRYW
BOOL WINAPI StartServiceW(_In_ SC_HANDLE hService, _In_ DWORD dwNumServiceArgs, _In_reads_opt_(dwNumServiceArgs) LPCWSTR *lpServiceArgVectors)
struct _SERVICE_REQUIRED_PRIVILEGES_INFOA SERVICE_REQUIRED_PRIVILEGES_INFOA
_SC_STATUS_TYPE
Definition: winsvc.h:124
@ SC_STATUS_PROCESS_INFO
Definition: winsvc.h:125
struct _SERVICE_PRESHUTDOWN_INFO SERVICE_PRESHUTDOWN_INFO
struct _SERVICE_STATUS * LPSERVICE_STATUS
struct _ENUM_SERVICE_STATUS_PROCESSW * LPENUM_SERVICE_STATUS_PROCESSW
_Must_inspect_result_ BOOL WINAPI QueryServiceConfigW(_In_ SC_HANDLE hService, _Out_writes_bytes_opt_(cbBufSize) LPQUERY_SERVICE_CONFIGW lpServiceConfig, _In_ DWORD cbBufSize, _Out_ LPDWORD pcbBytesNeeded)
_Must_inspect_result_ BOOL WINAPI EnumServicesStatusA(_In_ SC_HANDLE hSCManager, _In_ DWORD dwServiceType, _In_ DWORD dwServiceState, _Out_writes_bytes_opt_(cbBufSize) LPENUM_SERVICE_STATUSA lpServices, _In_ DWORD cbBufSize, _Out_ LPDWORD pcbBytesNeeded, _Out_ LPDWORD lpServicesReturned, _Inout_opt_ LPDWORD lpResumeHandle)
_Must_inspect_result_ SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExA(_In_ LPCSTR, _In_ LPHANDLER_FUNCTION_EX, _In_opt_ LPVOID)
struct _SERVICE_DESCRIPTIONW SERVICE_DESCRIPTIONW
_SC_ACTION_TYPE
Definition: winsvc.h:204
@ SC_ACTION_RUN_COMMAND
Definition: winsvc.h:208
@ SC_ACTION_REBOOT
Definition: winsvc.h:207
@ SC_ACTION_RESTART
Definition: winsvc.h:206
@ SC_ACTION_NONE
Definition: winsvc.h:205
BOOL WINAPI ChangeServiceConfig2W(_In_ SC_HANDLE, _In_ DWORD, _In_opt_ LPVOID)
_Must_inspect_result_ BOOL WINAPI QueryServiceConfigA(_In_ SC_HANDLE hService, _Out_writes_bytes_opt_(cbBufSize) LPQUERY_SERVICE_CONFIGA lpServiceConfig, _In_ DWORD cbBufSize, _Out_ LPDWORD pcbBytesNeeded)
BOOL WINAPI SetServiceObjectSecurity(_In_ SC_HANDLE, _In_ SECURITY_INFORMATION, _In_ PSECURITY_DESCRIPTOR)
struct _SC_ACTION SC_ACTION
struct _ENUM_SERVICE_STATUS_PROCESSA * LPENUM_SERVICE_STATUS_PROCESSA
_Must_inspect_result_ BOOL WINAPI EnumServicesStatusExA(_In_ SC_HANDLE hSCManager, _In_ SC_ENUM_TYPE InfoLevel, _In_ DWORD dwServiceType, _In_ DWORD dwServiceState, _Out_writes_bytes_opt_(cbBufSize) LPBYTE lpServices, _In_ DWORD cbBufSize, _Out_ LPDWORD pcbBytesNeeded, _Out_ LPDWORD lpServicesReturned, _Inout_opt_ LPDWORD lpResumeHandle, _In_opt_ LPCSTR pszGroupName)
BOOL WINAPI ChangeServiceConfigW(_In_ SC_HANDLE, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _Out_opt_ LPDWORD, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR)
void(WINAPI * LPSERVICE_MAIN_FUNCTIONA)(DWORD, LPSTR *)
Definition: winsvc.h:182
struct _SERVICE_REQUIRED_PRIVILEGES_INFOW SERVICE_REQUIRED_PRIVILEGES_INFOW
struct _QUERY_SERVICE_CONFIGW QUERY_SERVICE_CONFIGW
VOID(WINAPI * LPHANDLER_FUNCTION)(DWORD)
Definition: winsvc.h:196
_Must_inspect_result_ BOOL WINAPI QueryServiceStatus(_In_ SC_HANDLE, _Out_ LPSERVICE_STATUS)
struct _SERVICE_DESCRIPTIONW * LPSERVICE_DESCRIPTIONW
_Must_inspect_result_ SC_HANDLE WINAPI OpenServiceA(_In_ SC_HANDLE, _In_ LPCSTR, _In_ DWORD)
_Must_inspect_result_ BOOL WINAPI QueryServiceLockStatusA(_In_ SC_HANDLE hSCManager, _Out_writes_bytes_opt_(cbBufSize) LPQUERY_SERVICE_LOCK_STATUSA lpLockStatus, _In_ DWORD cbBufSize, _Out_ LPDWORD pcbBytesNeeded)
struct _ENUM_SERVICE_STATUSW ENUM_SERVICE_STATUSW
struct _ENUM_SERVICE_STATUS_PROCESSW ENUM_SERVICE_STATUS_PROCESSW
struct _SERVICE_STATUS SERVICE_STATUS
_Must_inspect_result_ BOOL WINAPI EnumServicesStatusExW(_In_ SC_HANDLE hSCManager, _In_ SC_ENUM_TYPE InfoLevel, _In_ DWORD dwServiceType, _In_ DWORD dwServiceState, _Out_writes_bytes_opt_(cbBufSize) LPBYTE lpServices, _In_ DWORD cbBufSize, _Out_ LPDWORD pcbBytesNeeded, _Out_ LPDWORD lpServicesReturned, _Inout_opt_ LPDWORD lpResumeHandle, _In_opt_ LPCWSTR pszGroupName)
struct _SERVICE_FAILURE_ACTIONSA * LPSERVICE_FAILURE_ACTIONSA
DWORD(WINAPI * LPHANDLER_FUNCTION_EX)(DWORD, DWORD, LPVOID, LPVOID)
Definition: winsvc.h:197
_Must_inspect_result_ BOOL WINAPI GetServiceKeyNameA(_In_ SC_HANDLE hSCManager, _In_ LPCSTR lpDisplayName, _Out_writes_opt_(*lpcchBuffer) LPSTR lpServiceName, _Inout_ LPDWORD lpcchBuffer)
_Must_inspect_result_ SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExW(_In_ LPCWSTR, _In_ LPHANDLER_FUNCTION_EX, _In_opt_ LPVOID)
struct _SERVICE_REQUIRED_PRIVILEGES_INFOA * LPSERVICE_REQUIRED_PRIVILEGES_INFOA
SC_HANDLE * LPSC_HANDLE
Definition: winsvc.h:193
struct _SERVICE_TABLE_ENTRYA * LPSERVICE_TABLE_ENTRYA
struct _SERVICE_REQUIRED_PRIVILEGES_INFOW * LPSERVICE_REQUIRED_PRIVILEGES_INFOW
struct _SC_ACTION * LPSC_ACTION
struct _SERVICE_PRESHUTDOWN_INFO * LPSERVICE_PRESHUTDOWN_INFO
BOOL WINAPI UnlockServiceDatabase(_In_ SC_LOCK)
_Must_inspect_result_ BOOL WINAPI GetServiceDisplayNameW(_In_ SC_HANDLE hSCManager, _In_ LPCWSTR lpServiceName, _Out_writes_opt_(*lpcchBuffer) LPWSTR lpDisplayName, _Inout_ LPDWORD lpcchBuffer)
LPSERVICE_MAIN_FUNCTIONA LPSERVICE_MAIN_FUNCTION
Definition: winsvc.h:559
void(WINAPI * LPSERVICE_MAIN_FUNCTIONW)(DWORD, LPWSTR *)
Definition: winsvc.h:183
enum _SC_STATUS_TYPE SC_STATUS_TYPE
_Must_inspect_result_ BOOL WINAPI QueryServiceLockStatusW(_In_ SC_HANDLE hSCManager, _Out_writes_bytes_opt_(cbBufSize) LPQUERY_SERVICE_LOCK_STATUSW lpLockStatus, _In_ DWORD cbBufSize, _Out_ LPDWORD pcbBytesNeeded)
struct _QUERY_SERVICE_CONFIGA * LPQUERY_SERVICE_CONFIGA
SC_LOCK WINAPI LockServiceDatabase(_In_ SC_HANDLE)
BOOL WINAPI CloseServiceHandle(_In_ SC_HANDLE)
struct _SERVICE_DESCRIPTIONA * LPSERVICE_DESCRIPTIONA
_Must_inspect_result_ BOOL WINAPI EnumDependentServicesA(_In_ SC_HANDLE hService, _In_ DWORD dwServiceState, _Out_writes_bytes_opt_(cbBufSize) LPENUM_SERVICE_STATUSA lpServices, _In_ DWORD cbBufSize, _Out_ LPDWORD pcbBytesNeeded, _Out_ LPDWORD lpServicesReturned)
BOOL WINAPI StartServiceCtrlDispatcherA(_In_ const SERVICE_TABLE_ENTRYA *)
struct _QUERY_SERVICE_LOCK_STATUSW * LPQUERY_SERVICE_LOCK_STATUSW
BOOL WINAPI ChangeServiceConfig2A(_In_ SC_HANDLE, _In_ DWORD, _In_opt_ LPVOID)
struct _ENUM_SERVICE_STATUSW * LPENUM_SERVICE_STATUSW
_Must_inspect_result_ SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerW(_In_ LPCWSTR, _In_ LPHANDLER_FUNCTION)
_Must_inspect_result_ BOOL WINAPI GetServiceDisplayNameA(_In_ SC_HANDLE hSCManager, _In_ LPCSTR lpServiceName, _Out_writes_opt_(*lpcchBuffer) LPSTR lpDisplayName, _Inout_ LPDWORD lpcchBuffer)
_Must_inspect_result_ SC_HANDLE WINAPI OpenSCManagerW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_ DWORD)
VOID(CALLBACK * PFN_SC_NOTIFY_CALLBACK)(_In_ PVOID)
Definition: winsvc.h:237
BOOL WINAPI StartServiceA(_In_ SC_HANDLE hService, _In_ DWORD dwNumServiceArgs, _In_reads_opt_(dwNumServiceArgs) LPCSTR *lpServiceArgVectors)
enum _SC_ACTION_TYPE SC_ACTION_TYPE
struct _SERVICE_STATUS_PROCESS * LPSERVICE_STATUS_PROCESS
struct _SERVICE_TABLE_ENTRYW SERVICE_TABLE_ENTRYW
struct _SERVICE_NOTIFY_2W SERVICE_NOTIFY_2W
_Must_inspect_result_ BOOL WINAPI EnumDependentServicesW(_In_ SC_HANDLE hService, _In_ DWORD dwServiceState, _Out_writes_bytes_opt_(cbBufSize) LPENUM_SERVICE_STATUSW lpServices, _In_ DWORD cbBufSize, _Out_ LPDWORD pcbBytesNeeded, _Out_ LPDWORD lpServicesReturned)
struct _SERVICE_FAILURE_ACTIONSA SERVICE_FAILURE_ACTIONSA
_Must_inspect_result_ SC_HANDLE WINAPI OpenServiceW(_In_ SC_HANDLE, _In_ LPCWSTR, _In_ DWORD)
_Must_inspect_result_ BOOL WINAPI EnumServicesStatusW(_In_ SC_HANDLE hSCManager, _In_ DWORD dwServiceType, _In_ DWORD dwServiceState, _Out_writes_bytes_opt_(cbBufSize) LPENUM_SERVICE_STATUSW lpServices, _In_ DWORD cbBufSize, _Out_ LPDWORD pcbBytesNeeded, _Out_ LPDWORD lpServicesReturned, _Inout_opt_ LPDWORD lpResumeHandle)
_Must_inspect_result_ SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerA(_In_ LPCSTR, _In_ LPHANDLER_FUNCTION)
_SC_ENUM_TYPE
Definition: winsvc.h:127
@ SC_ENUM_PROCESS_INFO
Definition: winsvc.h:128
BOOL WINAPI ControlService(_In_ SC_HANDLE, _In_ DWORD, _Out_ LPSERVICE_STATUS)
struct _SERVICE_FAILURE_ACTIONSW * LPSERVICE_FAILURE_ACTIONSW
struct _SERVICE_TABLE_ENTRYA SERVICE_TABLE_ENTRYA
struct _SERVICE_STATUS_PROCESS SERVICE_STATUS_PROCESS
BOOL WINAPI ChangeServiceConfigA(_In_ SC_HANDLE, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPCSTR, _In_opt_ LPCSTR, _Out_opt_ LPDWORD, _In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_opt_ LPCSTR)
DWORD WINAPI NotifyServiceStatusChangeW(_In_ SC_HANDLE, _In_ DWORD, _In_ PSERVICE_NOTIFYW)
struct _ENUM_SERVICE_STATUSA ENUM_SERVICE_STATUSA
_Must_inspect_result_ SC_HANDLE WINAPI CreateServiceW(_In_ SC_HANDLE, _In_ LPCWSTR, _In_opt_ LPCWSTR, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _Out_opt_ PDWORD, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR)
struct _ENUM_SERVICE_STATUSA * LPENUM_SERVICE_STATUSA
BOOL WINAPI SetServiceStatus(_In_ SERVICE_STATUS_HANDLE, _In_ LPSERVICE_STATUS)
enum _SC_ENUM_TYPE SC_ENUM_TYPE
Definition: service.c:45
_Must_inspect_result_ BOOL WINAPI QueryServiceStatusEx(_In_ SC_HANDLE hService, _In_ SC_STATUS_TYPE InfoLevel, _Out_writes_bytes_opt_(cbBufSize) LPBYTE lpBuffer, _In_ DWORD cbBufSize, _Out_ LPDWORD pcbBytesNeeded)
_Must_inspect_result_ BOOL WINAPI QueryServiceObjectSecurity(_In_ SC_HANDLE hService, _In_ SECURITY_INFORMATION dwSecurityInformation, _Out_writes_bytes_opt_(cbBufSize) PSECURITY_DESCRIPTOR lpSecurityDescriptor, _In_ DWORD cbBufSize, _Out_ LPDWORD pcbBytesNeeded)
struct _QUERY_SERVICE_CONFIGA QUERY_SERVICE_CONFIGA
SERVICE_NOTIFY_2W SERVICE_NOTIFYW
Definition: winsvc.h:264
struct _SERVICE_NOTIFY_2A SERVICE_NOTIFY_2A
_Must_inspect_result_ BOOL WINAPI GetServiceKeyNameW(_In_ SC_HANDLE hSCManager, _In_ LPCWSTR lpDisplayName, _Out_writes_opt_(*lpcchBuffer) LPWSTR lpServiceName, _Inout_ LPDWORD lpcchBuffer)
BOOL WINAPI QueryServiceConfig2A(SC_HANDLE hService, DWORD dwInfoLevel, LPBYTE lpBuffer, DWORD cbBufSize, LPDWORD pcbBytesNeeded)
Definition: scm.c:2413
BOOL WINAPI QueryServiceConfig2W(SC_HANDLE hService, DWORD dwInfoLevel, LPBYTE lpBuffer, DWORD cbBufSize, LPDWORD pcbBytesNeeded)
Definition: scm.c:2530
SERVICE_STATUS ServiceStatus
Definition: winsvc.h:133
SERVICE_STATUS ServiceStatus
Definition: winsvc.h:138
LPWSTR lpDisplayName
Definition: winsvc.h:137
LPWSTR lpServiceName
Definition: winsvc.h:136
SERVICE_STATUS_PROCESS ServiceStatusProcess
Definition: winsvc.h:143
SERVICE_STATUS_PROCESS ServiceStatusProcess
Definition: winsvc.h:148
LPSTR lpServiceStartName
Definition: winsvc.h:158
LPWSTR lpServiceStartName
Definition: winsvc.h:169
LPWSTR lpBinaryPathName
Definition: winsvc.h:165
LPWSTR lpLoadOrderGroup
Definition: winsvc.h:166
DWORD Delay
Definition: winsvc.h:212
SC_ACTION_TYPE Type
Definition: winsvc.h:211
LPWSTR lpDescription
Definition: winsvc.h:202
SC_ACTION * lpsaActions
Definition: winsvc.h:219
SC_ACTION * lpsaActions
Definition: winsvc.h:226
SERVICE_STATUS_PROCESS ServiceStatus
Definition: winsvc.h:250
DWORD dwNotificationStatus
Definition: winsvc.h:249
char * pszServiceNames
Definition: winsvc.h:189
DWORD dwNotificationTriggered
Definition: winsvc.h:251
PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback
Definition: winsvc.h:247
void * pContext
Definition: winsvc.h:185
DWORD dwNotificationStatus
Definition: winsvc.h:258
void * pContext
Definition: winsvc.h:195
DWORD dwNotificationTriggered
Definition: winsvc.h:260
SERVICE_STATUS_PROCESS ServiceStatus
Definition: winsvc.h:259
PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback
Definition: winsvc.h:256
WCHAR * pszServiceNames
Definition: winsvc.h:199
DWORD dwServiceSidType
Definition: winsvc.h:348
DWORD dwServiceSpecificExitCode
Definition: winsvc.h:118
DWORD dwServiceType
Definition: winsvc.h:105
DWORD dwWin32ExitCode
Definition: winsvc.h:108
DWORD dwControlsAccepted
Definition: winsvc.h:107
DWORD dwWaitHint
Definition: winsvc.h:111
DWORD dwCurrentState
Definition: winsvc.h:106
DWORD dwCheckPoint
Definition: winsvc.h:110
DWORD dwServiceSpecificExitCode
Definition: winsvc.h:109
LPSERVICE_MAIN_FUNCTIONA lpServiceProc
Definition: winsvc.h:186
LPWSTR lpServiceName
Definition: winsvc.h:189
LPSERVICE_MAIN_FUNCTIONW lpServiceProc
Definition: winsvc.h:190
unsigned char * LPBYTE
Definition: typedefs.h:53
uint32_t * LPDWORD
Definition: typedefs.h:59
#define DECL_WINELIB_TYPE_AW(type)
Definition: windef.h:195
#define WINAPI
Definition: msvc.h:6
#define WINADVAPI
Definition: winsvc.h:30
VOID(CALLBACK * LPSERVICE_MAIN_FUNCTIONA)(DWORD, LPSTR *)
Definition: winsvc.h:208
struct _SERVICE_SID_INFO * LPSERVICE_SID_INFO
static const WCHAR SERVICES_FAILED_DATABASEW[]
Definition: winsvc.h:43
struct _SERVICE_DELAYED_AUTO_START_INFO SERVICE_DELAYED_AUTO_START_INFO
struct _SERVICE_FAILURE_ACTIONS_FLAG SERVICE_FAILURE_ACTIONS_FLAG
struct _SERVICE_SID_INFO SERVICE_SID_INFO
void(CALLBACK * PFN_SC_NOTIFY_CALLBACK)(void *)
Definition: winsvc.h:180
struct _SERVICE_DELAYED_AUTO_START_INFO * LPSERVICE_DELAYED_AUTO_START_INFO
struct _SERVICE_FAILURE_ACTIONS_FLAG * LPSERVICE_FAILURE_ACTIONS_FLAG
VOID(CALLBACK * LPSERVICE_MAIN_FUNCTIONW)(DWORD, LPWSTR *)
Definition: winsvc.h:209
static const WCHAR SERVICES_ACTIVE_DATABASEW[]
Definition: winsvc.h:42
const char * LPCSTR
Definition: xmlstorage.h:183
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184
char * LPSTR
Definition: xmlstorage.h:182