ReactOS 0.4.16-dev-1875-g3000d45
winsvc.h
Go to the documentation of this file.
1#ifndef _WINSVC_
2#define _WINSVC_
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7#define SERVICES_ACTIVE_DATABASEA "ServicesActive"
8#define SERVICES_ACTIVE_DATABASEW L"ServicesActive"
9#define SERVICES_FAILED_DATABASEA "ServicesFailed"
10#define SERVICES_FAILED_DATABASEW L"ServicesFailed"
11#define SC_GROUP_IDENTIFIERA '+'
12#define SC_GROUP_IDENTIFIERW L'+'
13#define SC_MANAGER_ALL_ACCESS 0xf003f
14#define SC_MANAGER_CONNECT 1
15#define SC_MANAGER_CREATE_SERVICE 2
16#define SC_MANAGER_ENUMERATE_SERVICE 4
17#define SC_MANAGER_LOCK 8
18#define SC_MANAGER_QUERY_LOCK_STATUS 16
19#define SC_MANAGER_MODIFY_BOOT_CONFIG 32
20#define SERVICE_NO_CHANGE 0xffffffff
21#define SERVICE_STOPPED 1
22#define SERVICE_START_PENDING 2
23#define SERVICE_STOP_PENDING 3
24#define SERVICE_RUNNING 4
25#define SERVICE_CONTINUE_PENDING 5
26#define SERVICE_PAUSE_PENDING 6
27#define SERVICE_PAUSED 7
28#define SERVICE_ACCEPT_STOP 1
29#define SERVICE_ACCEPT_PAUSE_CONTINUE 2
30#define SERVICE_ACCEPT_SHUTDOWN 4
31#define SERVICE_ACCEPT_PARAMCHANGE 8
32#define SERVICE_ACCEPT_NETBINDCHANGE 16
33#define SERVICE_ACCEPT_HARDWAREPROFILECHANGE 32
34#define SERVICE_ACCEPT_POWEREVENT 64
35#define SERVICE_ACCEPT_SESSIONCHANGE 128
36#define SERVICE_ACCEPT_PRESHUTDOWN 256
37#define SERVICE_ACCEPT_TIMECHANGE 512
38#define SERVICE_ACCEPT_TRIGGEREVENT 1024
39#define SERVICE_ACCEPT_USER_LOGOFF 2048
40#define SERVICE_ACCEPT_LOWRESOURCES 8192
41#define SERVICE_ACCEPT_SYSTEMLOWRESOURCES 16384
42#define SERVICE_CONTROL_STOP 1
43#define SERVICE_CONTROL_PAUSE 2
44#define SERVICE_CONTROL_CONTINUE 3
45#define SERVICE_CONTROL_INTERROGATE 4
46#define SERVICE_CONTROL_SHUTDOWN 5
47#define SERVICE_CONTROL_PARAMCHANGE 6
48#define SERVICE_CONTROL_NETBINDADD 7
49#define SERVICE_CONTROL_NETBINDREMOVE 8
50#define SERVICE_CONTROL_NETBINDENABLE 9
51#define SERVICE_CONTROL_NETBINDDISABLE 10
52#define SERVICE_CONTROL_DEVICEEVENT 11
53#define SERVICE_CONTROL_HARDWAREPROFILECHANGE 12
54#define SERVICE_CONTROL_POWEREVENT 13
55#define SERVICE_CONTROL_SESSIONCHANGE 14
56#define SERVICE_ACTIVE 1
57#define SERVICE_INACTIVE 2
58#define SERVICE_STATE_ALL 3
59#define SERVICE_QUERY_CONFIG 1
60#define SERVICE_CHANGE_CONFIG 2
61#define SERVICE_QUERY_STATUS 4
62#define SERVICE_ENUMERATE_DEPENDENTS 8
63#define SERVICE_START 16
64#define SERVICE_STOP 32
65#define SERVICE_PAUSE_CONTINUE 64
66#define SERVICE_INTERROGATE 128
67#define SERVICE_USER_DEFINED_CONTROL 256
68#define SERVICE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SERVICE_QUERY_CONFIG|SERVICE_CHANGE_CONFIG|SERVICE_QUERY_STATUS|SERVICE_ENUMERATE_DEPENDENTS|SERVICE_START|SERVICE_STOP|SERVICE_PAUSE_CONTINUE|SERVICE_INTERROGATE|SERVICE_USER_DEFINED_CONTROL)
69#define SERVICE_RUNS_IN_SYSTEM_PROCESS 1
70
71#define SERVICE_CONFIG_DESCRIPTION 1
72#define SERVICE_CONFIG_FAILURE_ACTIONS 2
73#define SERVICE_CONFIG_DELAYED_AUTO_START_INFO 3
74#define SERVICE_CONFIG_FAILURE_ACTIONS_FLAG 4
75#define SERVICE_CONFIG_SERVICE_SID_INFO 5
76#define SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO 6
77#define SERVICE_CONFIG_PRESHUTDOWN_INFO 7
78#define SERVICE_CONFIG_TRIGGER_INFO 8
79#define SERVICE_CONFIG_PREFERRED_NODE 9
80#define SERVICE_CONFIG_RUNLEVEL_INFO 10
81
82#define SERVICE_NOTIFY_STATUS_CHANGE_1 1
83#define SERVICE_NOTIFY_STATUS_CHANGE_2 2
84#define SERVICE_NOTIFY_STATUS_CHANGE SERVICE_NOTIFY_STATUS_CHANGE_2
85
86#define SERVICE_NOTIFY_STOPPED 1
87#define SERVICE_NOTIFY_START_PENDING 2
88#define SERVICE_NOTIFY_STOP_PENDING 4
89#define SERVICE_NOTIFY_RUNNING 8
90#define SERVICE_NOTIFY_CONTINUE_PENDING 16
91#define SERVICE_NOTIFY_PAUSE_PENDING 32
92#define SERVICE_NOTIFY_PAUSED 64
93#define SERVICE_NOTIFY_CREATED 128
94#define SERVICE_NOTIFY_DELETED 256
95#define SERVICE_NOTIFY_DELETE_PENDING 512
96
97#ifndef _SERVICE_PRESHUTDOWN_INFO_DEFINED_
98#define _SERVICE_PRESHUTDOWN_INFO_DEFINED_
102#endif
103
104typedef struct _SERVICE_STATUS {
124typedef enum _SC_STATUS_TYPE {
127typedef enum _SC_ENUM_TYPE {
130typedef struct _ENUM_SERVICE_STATUSA {
135typedef struct _ENUM_SERVICE_STATUSW {
184typedef struct _SERVICE_TABLE_ENTRYA {
188typedef struct _SERVICE_TABLE_ENTRYW {
192DECLARE_HANDLE(SC_HANDLE);
193typedef SC_HANDLE *LPSC_HANDLE;
198typedef struct _SERVICE_DESCRIPTIONA {
201typedef struct _SERVICE_DESCRIPTIONW {
204typedef enum _SC_ACTION_TYPE {
210typedef struct _SC_ACTION {
228
232
236
238typedef struct _SERVICE_NOTIFY_1 {
245typedef struct _SERVICE_NOTIFY_2A {
254typedef struct _SERVICE_NOTIFY_2W {
265
275
277BOOL
278WINAPI
280 _In_ SC_HANDLE hService,
281 _In_ DWORD dwServiceState,
285 _Out_ LPDWORD lpServicesReturned);
286
288BOOL
289WINAPI
291 _In_ SC_HANDLE hService,
292 _In_ DWORD dwServiceState,
296 _Out_ LPDWORD lpServicesReturned);
297
299BOOL
300WINAPI
302 _In_ SC_HANDLE hSCManager,
303 _In_ DWORD dwServiceType,
304 _In_ DWORD dwServiceState,
308 _Out_ LPDWORD lpServicesReturned,
309 _Inout_opt_ LPDWORD lpResumeHandle);
310
312BOOL
313WINAPI
315 _In_ SC_HANDLE hSCManager,
316 _In_ DWORD dwServiceType,
317 _In_ DWORD dwServiceState,
321 _Out_ LPDWORD lpServicesReturned,
322 _Inout_opt_ LPDWORD lpResumeHandle);
323
325BOOL
326WINAPI
328 _In_ SC_HANDLE hSCManager,
329 _In_ SC_ENUM_TYPE InfoLevel,
330 _In_ DWORD dwServiceType,
331 _In_ DWORD dwServiceState,
335 _Out_ LPDWORD lpServicesReturned,
336 _Inout_opt_ LPDWORD lpResumeHandle,
337 _In_opt_ LPCSTR pszGroupName);
338
340BOOL
341WINAPI
343 _In_ SC_HANDLE hSCManager,
344 _In_ SC_ENUM_TYPE InfoLevel,
345 _In_ DWORD dwServiceType,
346 _In_ DWORD dwServiceState,
350 _Out_ LPDWORD lpServicesReturned,
351 _Inout_opt_ LPDWORD lpResumeHandle,
352 _In_opt_ LPCWSTR pszGroupName);
353
355BOOL
356WINAPI
358 _In_ SC_HANDLE hSCManager,
359 _In_ LPCSTR lpServiceName,
361 _Inout_ LPDWORD lpcchBuffer);
362
364BOOL
365WINAPI
367 _In_ SC_HANDLE hSCManager,
368 _In_ LPCWSTR lpServiceName,
370 _Inout_ LPDWORD lpcchBuffer);
371
373BOOL
374WINAPI
376 _In_ SC_HANDLE hSCManager,
378 _Out_writes_opt_(*lpcchBuffer) LPSTR lpServiceName,
379 _Inout_ LPDWORD lpcchBuffer);
380
382BOOL
383WINAPI
385 _In_ SC_HANDLE hSCManager,
387 _Out_writes_opt_(*lpcchBuffer) LPWSTR lpServiceName,
388 _Inout_ LPDWORD lpcchBuffer);
389
396
397#if (NTDDI_VERSION >= NTDDI_VISTA)
400#endif
401
403BOOL
404WINAPI
406 _In_ SC_HANDLE hService,
410
412BOOL
413WINAPI
415 _In_ SC_HANDLE hService,
419
424BOOL
425WINAPI
427 _In_ SC_HANDLE hService,
432
437BOOL
438WINAPI
440 _In_ SC_HANDLE hService,
445
447BOOL
448WINAPI
450 _In_ SC_HANDLE hSCManager,
454
456BOOL
457WINAPI
459 _In_ SC_HANDLE hSCManager,
463
465BOOL
466WINAPI
468 _In_ SC_HANDLE hService,
469 _In_ SECURITY_INFORMATION dwSecurityInformation,
473
475
477BOOL
478WINAPI
480 _In_ SC_HANDLE hService,
481 _In_ SC_STATUS_TYPE InfoLevel,
485
492
493BOOL
494WINAPI
496 _In_ SC_HANDLE hService,
497 _In_ DWORD dwNumServiceArgs,
498 _In_reads_opt_(dwNumServiceArgs) LPCSTR *lpServiceArgVectors);
499
500BOOL
501WINAPI
503 _In_ SC_HANDLE hService,
504 _In_ DWORD dwNumServiceArgs,
505 _In_reads_opt_(dwNumServiceArgs) LPCWSTR *lpServiceArgVectors);
506
510
511#ifdef UNICODE
529#define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEW
530#define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEW
531#define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERW
532#define ChangeServiceConfig ChangeServiceConfigW
533#define ChangeServiceConfig2 ChangeServiceConfig2W
534#define CreateService CreateServiceW
535#define EnumDependentServices EnumDependentServicesW
536#define EnumServicesStatus EnumServicesStatusW
537#define EnumServicesStatusEx EnumServicesStatusExW
538#define GetServiceDisplayName GetServiceDisplayNameW
539#define GetServiceKeyName GetServiceKeyNameW
540#if (NTDDI_VERSION >= NTDDI_VISTA)
541#define NotifyServiceStatusChange NotifyServiceStatusChangeW
542#endif
543#define OpenSCManager OpenSCManagerW
544#define OpenService OpenServiceW
545#define QueryServiceConfig QueryServiceConfigW
546#define QueryServiceConfig2 QueryServiceConfig2W
547#define QueryServiceLockStatus QueryServiceLockStatusW
548#define RegisterServiceCtrlHandler RegisterServiceCtrlHandlerW
549#define RegisterServiceCtrlHandlerEx RegisterServiceCtrlHandlerExW
550#define StartService StartServiceW
551#define StartServiceCtrlDispatcher StartServiceCtrlDispatcherW
552#else
570#define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEA
571#define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEA
572#define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERA
573#define ChangeServiceConfig ChangeServiceConfigA
574#define ChangeServiceConfig2 ChangeServiceConfig2A
575#define CreateService CreateServiceA
576#define EnumDependentServices EnumDependentServicesA
577#define EnumServicesStatus EnumServicesStatusA
578#define EnumServicesStatusEx EnumServicesStatusExA
579#define GetServiceDisplayName GetServiceDisplayNameA
580#define GetServiceKeyName GetServiceKeyNameA
581#define OpenSCManager OpenSCManagerA
582#define OpenService OpenServiceA
583#if (NTDDI_VERSION >= NTDDI_VISTA)
584#define NotifyServiceStatusChange NotifyServiceStatusChangeA
585#endif
586#define QueryServiceConfig QueryServiceConfigA
587#define QueryServiceConfig2 QueryServiceConfig2A
588#define QueryServiceLockStatus QueryServiceLockStatusA
589#define RegisterServiceCtrlHandler RegisterServiceCtrlHandlerA
590#define RegisterServiceCtrlHandlerEx RegisterServiceCtrlHandlerExA
591#define StartService StartServiceA
592#define StartServiceCtrlDispatcher StartServiceCtrlDispatcherA
593#endif
594#ifdef __cplusplus
595}
596#endif
597#endif /* _WINSVC_H */
static SERVICE_STATUS_HANDLE(WINAPI *pRegisterServiceCtrlHandlerExA)(LPCSTR
#define VOID
Definition: acefi.h:82
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
Definition: db.cpp:176
#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 _Out_opt_
Definition: no_sal2.h:214
#define _Inout_
Definition: no_sal2.h:162
#define _At_(t, a)
Definition: no_sal2.h:40
#define _Out_writes_opt_(s)
Definition: no_sal2.h:226
#define _Out_writes_bytes_opt_(s)
Definition: no_sal2.h:228
#define _Inout_opt_
Definition: no_sal2.h:216
#define _Must_inspect_result_
Definition: no_sal2.h:62
#define _Out_
Definition: no_sal2.h:160
#define _In_reads_opt_(s)
Definition: no_sal2.h:222
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define _In_range_(l, h)
Definition: no_sal2.h:368
#define _When_(c, a)
Definition: no_sal2.h:38
#define LPVOID
Definition: nt_native.h:45
#define DWORD
Definition: nt_native.h:44
DWORD * PDWORD
Definition: pedump.c:68
SC_HANDLE hSCManager
Definition: sc.c:12
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
DWORD dwNotificationStatus
Definition: winsvc.h:242
SERVICE_STATUS_PROCESS ServiceStatus
Definition: winsvc.h:243
PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback
Definition: winsvc.h:240
DWORD dwVersion
Definition: winsvc.h:239
PVOID pContext
Definition: winsvc.h:241
SERVICE_STATUS_PROCESS ServiceStatus
Definition: winsvc.h:250
LPSTR pszServiceNames
Definition: winsvc.h:252
DWORD dwNotificationStatus
Definition: winsvc.h:249
DWORD dwNotificationTriggered
Definition: winsvc.h:251
PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback
Definition: winsvc.h:247
DWORD dwNotificationStatus
Definition: winsvc.h:258
LPWSTR pszServiceNames
Definition: winsvc.h:261
DWORD dwNotificationTriggered
Definition: winsvc.h:260
SERVICE_STATUS_PROCESS ServiceStatus
Definition: winsvc.h:259
PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback
Definition: winsvc.h:256
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
enum _SC_ACTION_TYPE SC_ACTION_TYPE
unsigned char * LPBYTE
Definition: typedefs.h:53
void * PVOID
Definition: typedefs.h:50
uint32_t * LPDWORD
Definition: typedefs.h:59
_In_ LPCSTR _Out_writes_to_opt_ cchDisplayName LPSTR lpDisplayName
Definition: winbase.h:2533
#define WINAPI
Definition: msvc.h:6
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)
SERVICE_NOTIFY_2A * PSERVICE_NOTIFYA
Definition: winsvc.h:263
SERVICE_FAILURE_ACTIONSA SERVICE_FAILURE_ACTIONS
Definition: winsvc.h:562
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 *)
_In_ DWORD _In_ DWORD _Out_ LPDWORD pcbBytesNeeded
Definition: winsvc.h:431
struct _SERVICE_FAILURE_ACTIONSW SERVICE_FAILURE_ACTIONSW
LPENUM_SERVICE_STATUS_PROCESSA LPENUM_SERVICE_STATUS_PROCESS
Definition: winsvc.h:555
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)
LPSERVICE_FAILURE_ACTIONSA LPSERVICE_FAILURE_ACTIONS
Definition: winsvc.h:563
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
DWORD WINAPI NotifyServiceStatusChangeA(_In_ SC_HANDLE, _In_ DWORD, _In_ PSERVICE_NOTIFYA)
BOOL WINAPI StartServiceW(_In_ SC_HANDLE hService, _In_ DWORD dwNumServiceArgs, _In_reads_opt_(dwNumServiceArgs) LPCWSTR *lpServiceArgVectors)
PSERVICE_NOTIFY_2A PSERVICE_NOTIFY_2
Definition: winsvc.h:567
QUERY_SERVICE_LOCK_STATUSA QUERY_SERVICE_LOCK_STATUS
Definition: winsvc.h:557
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
_In_ DWORD _In_ DWORD cbBufSize
Definition: winsvc.h:430
struct _SERVICE_STATUS * LPSERVICE_STATUS
struct _ENUM_SERVICE_STATUS_PROCESSW * LPENUM_SERVICE_STATUS_PROCESSW
SERVICE_NOTIFY_2W * PSERVICE_NOTIFYW
Definition: winsvc.h:264
ENUM_SERVICE_STATUSA * LPENUM_SERVICE_STATUS
Definition: winsvc.h:553
_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)
#define SERVICE_CONFIG_DESCRIPTION
Definition: winsvc.h:71
_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
QUERY_SERVICE_LOCK_STATUSA * LPQUERY_SERVICE_LOCK_STATUS
Definition: winsvc.h:557
_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)
SERVICE_REQUIRED_PRIVILEGES_INFOA SERVICE_REQUIRED_PRIVILEGES_INFO
Definition: winsvc.h:564
struct _SERVICE_NOTIFY_2W * PSERVICE_NOTIFY_2W
struct _SC_ACTION SC_ACTION
struct _ENUM_SERVICE_STATUS_PROCESSA * LPENUM_SERVICE_STATUS_PROCESSA
struct _SERVICE_NOTIFY_1 SERVICE_NOTIFY_1
_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)
#define SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO
Definition: winsvc.h:76
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
struct _SERVICE_NOTIFY_2A * PSERVICE_NOTIFY_2A
SERVICE_DESCRIPTIONA SERVICE_DESCRIPTION
Definition: winsvc.h:560
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
QUERY_SERVICE_CONFIGA * LPQUERY_SERVICE_CONFIG
Definition: winsvc.h:556
SERVICE_NOTIFY_2A SERVICE_NOTIFY_2
Definition: winsvc.h:566
_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
SERVICE_TABLE_ENTRYA SERVICE_TABLE_ENTRY
Definition: winsvc.h:558
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)
_In_ DWORD dwInfoLevel
Definition: winsvc.h:428
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
PSERVICE_NOTIFYA PSERVICE_NOTIFY
Definition: winsvc.h:569
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)
QUERY_SERVICE_CONFIGA QUERY_SERVICE_CONFIG
Definition: winsvc.h:556
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
struct _SERVICE_NOTIFY_1 * PSERVICE_NOTIFY_1
ENUM_SERVICE_STATUS_PROCESSA ENUM_SERVICE_STATUS_PROCESS
Definition: winsvc.h:554
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)
ENUM_SERVICE_STATUSA ENUM_SERVICE_STATUS
Definition: winsvc.h:553
_Must_inspect_result_ BOOL WINAPI GetServiceDisplayNameA(_In_ SC_HANDLE hSCManager, _In_ LPCSTR lpServiceName, _Out_writes_opt_(*lpcchBuffer) LPSTR lpDisplayName, _Inout_ LPDWORD lpcchBuffer)
LPSERVICE_DESCRIPTIONA LPSERVICE_DESCRIPTION
Definition: winsvc.h:561
LPSERVICE_REQUIRED_PRIVILEGES_INFOA LPSERVICE_REQUIRED_PRIVILEGES_INFO
Definition: winsvc.h:565
_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
SERVICE_NOTIFYA SERVICE_NOTIFY
Definition: winsvc.h:568
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)
#define SERVICE_CONFIG_FAILURE_ACTIONS
Definition: winsvc.h:72
_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)
SERVICE_TABLE_ENTRYA * LPSERVICE_TABLE_ENTRY
Definition: winsvc.h:558
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:43
_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)
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
const char * LPCSTR
Definition: xmlstorage.h:183
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
WCHAR * LPWSTR
Definition: xmlstorage.h:184
char * LPSTR
Definition: xmlstorage.h:182
#define const
Definition: zconf.h:233