19#ifndef __WINE_WINSVC_H
20#define __WINE_WINSVC_H
30#define WINADVAPI DECLSPEC_IMPORT
35#define SERVICES_ACTIVE_DATABASEA "ServicesActive"
36#define SERVICES_FAILED_DATABASEA "ServicesFailed"
38#if defined(_MSC_VER) || defined(__MINGW32__)
39# define SERVICES_ACTIVE_DATABASEW L"ServicesActive"
40# define SERVICES_FAILED_DATABASEW L"ServicesFailed"
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 };
46#define SERVICES_ACTIVE_DATABASE WINELIB_NAME_AW( SERVICES_ACTIVE_DATABASE )
47#define SERVICES_FAILED_DATABASE WINELIB_NAME_AW( SERVICES_FAILED_DATABASE )
50#define SERVICE_ACTIVE 0x00000001
51#define SERVICE_INACTIVE 0x00000002
52#define SERVICE_STATE_ALL (SERVICE_ACTIVE | SERVICE_INACTIVE)
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
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
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
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 | \
105 SC_MANAGER_QUERY_LOCK_STATUS | \
106 SC_MANAGER_MODIFY_BOOT_CONFIG )
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
118#define SERVICE_ALL_ACCESS ( STANDARD_RIGHTS_REQUIRED | \
119 SERVICE_QUERY_CONFIG | \
120 SERVICE_CHANGE_CONFIG | \
121 SERVICE_QUERY_STATUS | \
122 SERVICE_ENUMERATE_DEPENDENTS | \
125 SERVICE_PAUSE_CONTINUE | \
126 SERVICE_INTERROGATE | \
127 SERVICE_USER_DEFINED_CONTROL )
129#define SERVICE_NO_CHANGE 0xffffffff
131#define SERVICE_RUNS_IN_SYSTEM_PROCESS 0x00000001
167#define SERVICE_NOTIFY_STATUS_CHANGE 2
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
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
389WINADVAPI BOOL WINAPI ChangeServiceConfigA(SC_HANDLE,
DWORD,
DWORD,
DWORD,
LPCSTR,
LPCSTR,
LPDWORD,
LPCSTR,
LPCSTR,
LPCSTR,
LPCSTR);
390WINADVAPI BOOL WINAPI ChangeServiceConfigW(SC_HANDLE,
DWORD,
DWORD,
DWORD,
LPCWSTR,
LPCWSTR,
LPDWORD,
LPCWSTR,
LPCWSTR,
LPCWSTR,
LPCWSTR);
391#define ChangeServiceConfig WINELIB_NAME_AW(ChangeServiceConfig)
394#define ChangeServiceConfig2 WINELIB_NAME_AW(ChangeServiceConfig2)
397WINADVAPI SC_HANDLE
WINAPI CreateServiceA(SC_HANDLE,
LPCSTR,
LPCSTR,
DWORD,
DWORD,
DWORD,
DWORD,
LPCSTR,
LPCSTR,
LPDWORD,
LPCSTR,
LPCSTR,
LPCSTR);
398WINADVAPI SC_HANDLE
WINAPI CreateServiceW(SC_HANDLE,
LPCWSTR,
LPCWSTR,
DWORD,
DWORD,
DWORD,
DWORD,
LPCWSTR,
LPCWSTR,
LPDWORD,
LPCWSTR,
LPCWSTR,
LPCWSTR);
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)
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)
static SERVICE_STATUS_HANDLE(WINAPI *pRegisterServiceCtrlHandlerExA)(LPCSTR
#define DECLARE_HANDLE(name)
DWORD SECURITY_INFORMATION
struct _QUERY_SERVICE_CONFIGW * LPQUERY_SERVICE_CONFIGW
struct _QUERY_SERVICE_LOCK_STATUSW QUERY_SERVICE_LOCK_STATUSW
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
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
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
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 *)
struct _SERVICE_REQUIRED_PRIVILEGES_INFOW SERVICE_REQUIRED_PRIVILEGES_INFOW
struct _QUERY_SERVICE_CONFIGW QUERY_SERVICE_CONFIGW
VOID(WINAPI * LPHANDLER_FUNCTION)(DWORD)
_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)
_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
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
void(WINAPI * LPSERVICE_MAIN_FUNCTIONW)(DWORD, LPWSTR *)
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)
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)
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
_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
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)
BOOL WINAPI QueryServiceConfig2W(SC_HANDLE hService, DWORD dwInfoLevel, LPBYTE lpBuffer, DWORD cbBufSize, LPDWORD pcbBytesNeeded)
SERVICE_STATUS ServiceStatus
SERVICE_STATUS ServiceStatus
SERVICE_STATUS_PROCESS ServiceStatusProcess
SERVICE_STATUS_PROCESS ServiceStatusProcess
LPWSTR lpServiceStartName
BOOL fFailureActionsOnNonCrashFailures
SERVICE_STATUS_PROCESS ServiceStatus
DWORD dwNotificationStatus
DWORD dwNotificationTriggered
PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback
DWORD dwNotificationStatus
DWORD dwNotificationTriggered
SERVICE_STATUS_PROCESS ServiceStatus
PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback
DWORD dwPreshutdownTimeout
LPSTR pmszRequiredPrivileges
LPWSTR pmszRequiredPrivileges
DWORD dwServiceSpecificExitCode
DWORD dwServiceSpecificExitCode
LPSERVICE_MAIN_FUNCTIONA lpServiceProc
LPSERVICE_MAIN_FUNCTIONW lpServiceProc
#define DECL_WINELIB_TYPE_AW(type)
VOID(CALLBACK * LPSERVICE_MAIN_FUNCTIONA)(DWORD, LPSTR *)
struct _SERVICE_SID_INFO * LPSERVICE_SID_INFO
static const WCHAR SERVICES_FAILED_DATABASEW[]
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 *)
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 *)
static const WCHAR SERVICES_ACTIVE_DATABASEW[]