[1166] | 1 | /**
|
---|
| 2 | * This file has no copyright assigned and is placed in the Public Domain.
|
---|
| 3 | * This file is part of the mingw-w64 runtime package.
|
---|
| 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
---|
| 5 | */
|
---|
| 6 | #ifndef _WINSVC_
|
---|
| 7 | #define _WINSVC_
|
---|
| 8 |
|
---|
| 9 | #include <_mingw.h>
|
---|
| 10 | #include <_mingw_unicode.h>
|
---|
| 11 | #include <apisetcconv.h>
|
---|
| 12 |
|
---|
| 13 | #ifdef __cplusplus
|
---|
| 14 | extern "C" {
|
---|
| 15 | #endif
|
---|
| 16 |
|
---|
| 17 | #define SERVICES_ACTIVE_DATABASEW L"ServicesActive"
|
---|
| 18 | #define SERVICES_FAILED_DATABASEW L"ServicesFailed"
|
---|
| 19 |
|
---|
| 20 | #define SERVICES_ACTIVE_DATABASEA "ServicesActive"
|
---|
| 21 | #define SERVICES_FAILED_DATABASEA "ServicesFailed"
|
---|
| 22 |
|
---|
| 23 | #define SC_GROUP_IDENTIFIERW L'+'
|
---|
| 24 | #define SC_GROUP_IDENTIFIERA '+'
|
---|
| 25 |
|
---|
| 26 | #define SERVICES_ACTIVE_DATABASE __MINGW_NAME_AW(SERVICES_ACTIVE_DATABASE)
|
---|
| 27 | #define SERVICES_FAILED_DATABASE __MINGW_NAME_AW(SERVICES_FAILED_DATABASE)
|
---|
| 28 |
|
---|
| 29 | #define SC_GROUP_IDENTIFIER __MINGW_NAME_AW(SC_GROUP_IDENTIFIER)
|
---|
| 30 |
|
---|
| 31 | #define SERVICE_NO_CHANGE 0xffffffff
|
---|
| 32 |
|
---|
| 33 | #define SERVICE_ACTIVE 0x00000001
|
---|
| 34 | #define SERVICE_INACTIVE 0x00000002
|
---|
| 35 | #define SERVICE_STATE_ALL (SERVICE_ACTIVE | SERVICE_INACTIVE)
|
---|
| 36 |
|
---|
| 37 | #define SERVICE_CONTROL_STOP 0x00000001
|
---|
| 38 | #define SERVICE_CONTROL_PAUSE 0x00000002
|
---|
| 39 | #define SERVICE_CONTROL_CONTINUE 0x00000003
|
---|
| 40 | #define SERVICE_CONTROL_INTERROGATE 0x00000004
|
---|
| 41 | #define SERVICE_CONTROL_SHUTDOWN 0x00000005
|
---|
| 42 | #define SERVICE_CONTROL_PARAMCHANGE 0x00000006
|
---|
| 43 | #define SERVICE_CONTROL_NETBINDADD 0x00000007
|
---|
| 44 | #define SERVICE_CONTROL_NETBINDREMOVE 0x00000008
|
---|
| 45 | #define SERVICE_CONTROL_NETBINDENABLE 0x00000009
|
---|
| 46 | #define SERVICE_CONTROL_NETBINDDISABLE 0x0000000A
|
---|
| 47 | #define SERVICE_CONTROL_DEVICEEVENT 0x0000000B
|
---|
| 48 | #define SERVICE_CONTROL_HARDWAREPROFILECHANGE 0x0000000C
|
---|
| 49 | #define SERVICE_CONTROL_POWEREVENT 0x0000000D
|
---|
| 50 | #define SERVICE_CONTROL_SESSIONCHANGE 0x0000000E
|
---|
| 51 | #define SERVICE_CONTROL_PRESHUTDOWN 0x0000000F
|
---|
| 52 | #define SERVICE_CONTROL_TIMECHANGE 0x00000010
|
---|
| 53 | #define SERVICE_CONTROL_USER_LOGOFF 0x00000011
|
---|
| 54 | #define SERVICE_CONTROL_TRIGGEREVENT 0x00000020
|
---|
| 55 | #define SERVICE_CONTROL_LOWRESOURCES 0x00000060
|
---|
| 56 | #define SERVICE_CONTROL_SYSTEMLOWRESOURCES 0x00000061
|
---|
| 57 |
|
---|
| 58 | #define SERVICE_STOPPED 0x00000001
|
---|
| 59 | #define SERVICE_START_PENDING 0x00000002
|
---|
| 60 | #define SERVICE_STOP_PENDING 0x00000003
|
---|
| 61 | #define SERVICE_RUNNING 0x00000004
|
---|
| 62 | #define SERVICE_CONTINUE_PENDING 0x00000005
|
---|
| 63 | #define SERVICE_PAUSE_PENDING 0x00000006
|
---|
| 64 | #define SERVICE_PAUSED 0x00000007
|
---|
| 65 |
|
---|
| 66 | #define SERVICE_ACCEPT_STOP 0x00000001
|
---|
| 67 | #define SERVICE_ACCEPT_PAUSE_CONTINUE 0x00000002
|
---|
| 68 | #define SERVICE_ACCEPT_SHUTDOWN 0x00000004
|
---|
| 69 | #define SERVICE_ACCEPT_PARAMCHANGE 0x00000008
|
---|
| 70 | #define SERVICE_ACCEPT_NETBINDCHANGE 0x00000010
|
---|
| 71 | #define SERVICE_ACCEPT_HARDWAREPROFILECHANGE 0x00000020
|
---|
| 72 | #define SERVICE_ACCEPT_POWEREVENT 0x00000040
|
---|
| 73 | #define SERVICE_ACCEPT_SESSIONCHANGE 0x00000080
|
---|
| 74 | #define SERVICE_ACCEPT_PRESHUTDOWN 0x00000100
|
---|
| 75 | #define SERVICE_ACCEPT_TIMECHANGE 0x00000200
|
---|
| 76 | #define SERVICE_ACCEPT_TRIGGEREVENT 0x00000400
|
---|
| 77 | #define SERVICE_ACCEPT_USER_LOGOFF 0x00000800
|
---|
| 78 | #define SERVICE_ACCEPT_LOWRESOURCES 0x00002000
|
---|
| 79 | #define SERVICE_ACCEPT_SYSTEMLOWRESOURCES 0x00004000
|
---|
| 80 |
|
---|
| 81 | #define SC_MANAGER_CONNECT 0x0001
|
---|
| 82 | #define SC_MANAGER_CREATE_SERVICE 0x0002
|
---|
| 83 | #define SC_MANAGER_ENUMERATE_SERVICE 0x0004
|
---|
| 84 | #define SC_MANAGER_LOCK 0x0008
|
---|
| 85 | #define SC_MANAGER_QUERY_LOCK_STATUS 0x0010
|
---|
| 86 | #define SC_MANAGER_MODIFY_BOOT_CONFIG 0x0020
|
---|
| 87 |
|
---|
| 88 | #define SC_MANAGER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SC_MANAGER_CONNECT | SC_MANAGER_CREATE_SERVICE | SC_MANAGER_ENUMERATE_SERVICE | SC_MANAGER_LOCK | SC_MANAGER_QUERY_LOCK_STATUS | SC_MANAGER_MODIFY_BOOT_CONFIG)
|
---|
| 89 |
|
---|
| 90 | #define SERVICE_QUERY_CONFIG 0x0001
|
---|
| 91 | #define SERVICE_CHANGE_CONFIG 0x0002
|
---|
| 92 | #define SERVICE_QUERY_STATUS 0x0004
|
---|
| 93 | #define SERVICE_ENUMERATE_DEPENDENTS 0x0008
|
---|
| 94 | #define SERVICE_START 0x0010
|
---|
| 95 | #define SERVICE_STOP 0x0020
|
---|
| 96 | #define SERVICE_PAUSE_CONTINUE 0x0040
|
---|
| 97 | #define SERVICE_INTERROGATE 0x0080
|
---|
| 98 | #define SERVICE_USER_DEFINED_CONTROL 0x0100
|
---|
| 99 |
|
---|
| 100 | #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)
|
---|
| 101 |
|
---|
| 102 | #define SERVICE_RUNS_IN_SYSTEM_PROCESS 0x00000001
|
---|
| 103 |
|
---|
| 104 | #define SERVICE_CONFIG_DESCRIPTION 1
|
---|
| 105 | #define SERVICE_CONFIG_FAILURE_ACTIONS 2
|
---|
| 106 | #define SERVICE_CONFIG_DELAYED_AUTO_START_INFO 3
|
---|
| 107 | #define SERVICE_CONFIG_FAILURE_ACTIONS_FLAG 4
|
---|
| 108 | #define SERVICE_CONFIG_SERVICE_SID_INFO 5
|
---|
| 109 | #define SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO 6
|
---|
| 110 | #define SERVICE_CONFIG_PRESHUTDOWN_INFO 7
|
---|
| 111 | #define SERVICE_CONFIG_TRIGGER_INFO 8
|
---|
| 112 | #define SERVICE_CONFIG_PREFERRED_NODE 9
|
---|
| 113 | #define SERVICE_CONFIG_LAUNCH_PROTECTED 12
|
---|
| 114 |
|
---|
| 115 | #define SERVICE_NOTIFY_STATUS_CHANGE_1 1
|
---|
| 116 | #define SERVICE_NOTIFY_STATUS_CHANGE_2 2
|
---|
| 117 |
|
---|
| 118 | #define SERVICE_NOTIFY_STATUS_CHANGE SERVICE_NOTIFY_STATUS_CHANGE_2
|
---|
| 119 |
|
---|
| 120 | #define SERVICE_NOTIFY_STOPPED 0x00000001
|
---|
| 121 | #define SERVICE_NOTIFY_START_PENDING 0x00000002
|
---|
| 122 | #define SERVICE_NOTIFY_STOP_PENDING 0x00000004
|
---|
| 123 | #define SERVICE_NOTIFY_RUNNING 0x00000008
|
---|
| 124 | #define SERVICE_NOTIFY_CONTINUE_PENDING 0x00000010
|
---|
| 125 | #define SERVICE_NOTIFY_PAUSE_PENDING 0x00000020
|
---|
| 126 | #define SERVICE_NOTIFY_PAUSED 0x00000040
|
---|
| 127 | #define SERVICE_NOTIFY_CREATED 0x00000080
|
---|
| 128 | #define SERVICE_NOTIFY_DELETED 0x00000100
|
---|
| 129 | #define SERVICE_NOTIFY_DELETE_PENDING 0x00000200
|
---|
| 130 |
|
---|
| 131 | #define SERVICE_STOP_REASON_FLAG_MIN 0x00000000
|
---|
| 132 | #define SERVICE_STOP_REASON_FLAG_UNPLANNED 0x10000000
|
---|
| 133 | #define SERVICE_STOP_REASON_FLAG_CUSTOM 0x20000000
|
---|
| 134 | #define SERVICE_STOP_REASON_FLAG_PLANNED 0x40000000
|
---|
| 135 | #define SERVICE_STOP_REASON_FLAG_MAX 0x80000000
|
---|
| 136 |
|
---|
| 137 | #define SERVICE_STOP_REASON_MAJOR_MIN 0x00000000
|
---|
| 138 | #define SERVICE_STOP_REASON_MAJOR_OTHER 0x00010000
|
---|
| 139 | #define SERVICE_STOP_REASON_MAJOR_HARDWARE 0x00020000
|
---|
| 140 | #define SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM 0x00030000
|
---|
| 141 | #define SERVICE_STOP_REASON_MAJOR_SOFTWARE 0x00040000
|
---|
| 142 | #define SERVICE_STOP_REASON_MAJOR_APPLICATION 0x00050000
|
---|
| 143 | #define SERVICE_STOP_REASON_MAJOR_NONE 0x00060000
|
---|
| 144 | #define SERVICE_STOP_REASON_MAJOR_MAX 0x00070000
|
---|
| 145 | #define SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM 0x00400000
|
---|
| 146 | #define SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM 0x00ff0000
|
---|
| 147 |
|
---|
| 148 | #define SERVICE_STOP_REASON_MINOR_MIN 0x00000000
|
---|
| 149 | #define SERVICE_STOP_REASON_MINOR_OTHER 0x00000001
|
---|
| 150 | #define SERVICE_STOP_REASON_MINOR_MAINTENANCE 0x00000002
|
---|
| 151 | #define SERVICE_STOP_REASON_MINOR_INSTALLATION 0x00000003
|
---|
| 152 | #define SERVICE_STOP_REASON_MINOR_UPGRADE 0x00000004
|
---|
| 153 | #define SERVICE_STOP_REASON_MINOR_RECONFIG 0x00000005
|
---|
| 154 | #define SERVICE_STOP_REASON_MINOR_HUNG 0x00000006
|
---|
| 155 | #define SERVICE_STOP_REASON_MINOR_UNSTABLE 0x00000007
|
---|
| 156 | #define SERVICE_STOP_REASON_MINOR_DISK 0x00000008
|
---|
| 157 | #define SERVICE_STOP_REASON_MINOR_NETWORKCARD 0x00000009
|
---|
| 158 | #define SERVICE_STOP_REASON_MINOR_ENVIRONMENT 0x0000000a
|
---|
| 159 | #define SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER 0x0000000b
|
---|
| 160 | #define SERVICE_STOP_REASON_MINOR_OTHERDRIVER 0x0000000c
|
---|
| 161 | #define SERVICE_STOP_REASON_MINOR_SERVICEPACK 0x0000000d
|
---|
| 162 | #define SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE 0x0000000e
|
---|
| 163 | #define SERVICE_STOP_REASON_MINOR_SECURITYFIX 0x0000000f
|
---|
| 164 | #define SERVICE_STOP_REASON_MINOR_SECURITY 0x00000010
|
---|
| 165 | #define SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY 0x00000011
|
---|
| 166 | #define SERVICE_STOP_REASON_MINOR_WMI 0x00000012
|
---|
| 167 | #define SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL 0x00000013
|
---|
| 168 | #define SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL 0x00000014
|
---|
| 169 | #define SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL 0x00000015
|
---|
| 170 | #define SERVICE_STOP_REASON_MINOR_MMC 0x00000016
|
---|
| 171 | #define SERVICE_STOP_REASON_MINOR_NONE 0x00000017
|
---|
| 172 | #define SERVICE_STOP_REASON_MINOR_MEMOTYLIMIT 0x00000018
|
---|
| 173 | #define SERVICE_STOP_REASON_MINOR_MAX 0x00000019
|
---|
| 174 | #define SERVICE_STOP_REASON_MINOR_MIN_CUSTOM 0x00000100
|
---|
| 175 | #define SERVICE_STOP_REASON_MINOR_MAX_CUSTOM 0x0000FFFF
|
---|
| 176 |
|
---|
| 177 | #define SERVICE_CONTROL_STATUS_REASON_INFO 1
|
---|
| 178 |
|
---|
| 179 | #define SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL 1
|
---|
| 180 | #define SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY 2
|
---|
| 181 | #define SERVICE_TRIGGER_TYPE_DOMAIN_JOIN 3
|
---|
| 182 | #define SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT 4
|
---|
| 183 | #define SERVICE_TRIGGER_TYPE_GROUP_POLICY 5
|
---|
| 184 | #define SERVICE_TRIGGER_TYPE_NETWORK_ENDPOINT 6
|
---|
| 185 | #define SERVICE_TRIGGER_TYPE_CUSTOM_SYSTEM_STATE_CHANGE 7
|
---|
| 186 | #define SERVICE_TRIGGER_TYPE_CUSTOM 20
|
---|
| 187 | #define SERVICE_TRIGGER_TYPE_AGGREGATE 30
|
---|
| 188 |
|
---|
| 189 | #define SERVICE_TRIGGER_DATA_TYPE_BINARY 1
|
---|
| 190 | #define SERVICE_TRIGGER_DATA_TYPE_STRING 2
|
---|
| 191 | #define SERVICE_TRIGGER_DATA_TYPE_LEVEL 3
|
---|
| 192 | #define SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY 4
|
---|
| 193 | #define SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL 5
|
---|
| 194 |
|
---|
| 195 | #define SERVICE_START_REASON_DEMAND 0x00000001
|
---|
| 196 | #define SERVICE_START_REASON_AUTO 0x00000002
|
---|
| 197 | #define SERVICE_START_REASON_TRIGGER 0x00000004
|
---|
| 198 | #define SERVICE_START_REASON_RESTART_ON_FAILURE 0x00000008
|
---|
| 199 | #define SERVICE_START_REASON_DELAYEDAUTO 0x00000010
|
---|
| 200 |
|
---|
| 201 | #define SERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON 1
|
---|
| 202 |
|
---|
| 203 | #define SERVICE_LAUNCH_PROTECTED_NONE 0
|
---|
| 204 | #define SERVICE_LAUNCH_PROTECTED_WINDOWS 1
|
---|
| 205 | #define SERVICE_LAUNCH_PROTECTED_WINDOWS_LIGHT 2
|
---|
| 206 | #define SERVICE_LAUNCH_PROTECTED_ANTIMALWARE_LIGHT 3
|
---|
| 207 |
|
---|
| 208 | typedef struct _SERVICE_DESCRIPTIONA {
|
---|
| 209 | LPSTR lpDescription;
|
---|
| 210 | } SERVICE_DESCRIPTIONA,*LPSERVICE_DESCRIPTIONA;
|
---|
| 211 |
|
---|
| 212 | typedef struct _SERVICE_DESCRIPTIONW {
|
---|
| 213 | LPWSTR lpDescription;
|
---|
| 214 | } SERVICE_DESCRIPTIONW,*LPSERVICE_DESCRIPTIONW;
|
---|
| 215 |
|
---|
| 216 | __MINGW_TYPEDEF_AW(SERVICE_DESCRIPTION)
|
---|
| 217 | __MINGW_TYPEDEF_AW(LPSERVICE_DESCRIPTION)
|
---|
| 218 |
|
---|
| 219 | typedef enum _SC_ACTION_TYPE {
|
---|
| 220 | SC_ACTION_NONE = 0,SC_ACTION_RESTART = 1,SC_ACTION_REBOOT = 2,SC_ACTION_RUN_COMMAND = 3
|
---|
| 221 | } SC_ACTION_TYPE;
|
---|
| 222 |
|
---|
| 223 | typedef struct _SC_ACTION {
|
---|
| 224 | SC_ACTION_TYPE Type;
|
---|
| 225 | DWORD Delay;
|
---|
| 226 | } SC_ACTION,*LPSC_ACTION;
|
---|
| 227 |
|
---|
| 228 | typedef struct _SERVICE_FAILURE_ACTIONSA {
|
---|
| 229 | DWORD dwResetPeriod;
|
---|
| 230 | LPSTR lpRebootMsg;
|
---|
| 231 | LPSTR lpCommand;
|
---|
| 232 | DWORD cActions;
|
---|
| 233 | SC_ACTION *lpsaActions;
|
---|
| 234 | } SERVICE_FAILURE_ACTIONSA,*LPSERVICE_FAILURE_ACTIONSA;
|
---|
| 235 |
|
---|
| 236 | typedef struct _SERVICE_FAILURE_ACTIONSW {
|
---|
| 237 | DWORD dwResetPeriod;
|
---|
| 238 | LPWSTR lpRebootMsg;
|
---|
| 239 | LPWSTR lpCommand;
|
---|
| 240 | DWORD cActions;
|
---|
| 241 | SC_ACTION *lpsaActions;
|
---|
| 242 | } SERVICE_FAILURE_ACTIONSW,*LPSERVICE_FAILURE_ACTIONSW;
|
---|
| 243 |
|
---|
| 244 | __MINGW_TYPEDEF_AW(SERVICE_FAILURE_ACTIONS)
|
---|
| 245 | __MINGW_TYPEDEF_AW(LPSERVICE_FAILURE_ACTIONS)
|
---|
| 246 |
|
---|
| 247 | DECLARE_HANDLE(SC_HANDLE);
|
---|
| 248 | typedef SC_HANDLE *LPSC_HANDLE;
|
---|
| 249 |
|
---|
| 250 | DECLARE_HANDLE(SERVICE_STATUS_HANDLE);
|
---|
| 251 |
|
---|
| 252 | typedef enum _SC_STATUS_TYPE {
|
---|
| 253 | SC_STATUS_PROCESS_INFO = 0
|
---|
| 254 | } SC_STATUS_TYPE;
|
---|
| 255 |
|
---|
| 256 | typedef enum _SC_ENUM_TYPE {
|
---|
| 257 | SC_ENUM_PROCESS_INFO = 0
|
---|
| 258 | } SC_ENUM_TYPE;
|
---|
| 259 |
|
---|
| 260 | typedef struct _SERVICE_STATUS {
|
---|
| 261 | DWORD dwServiceType;
|
---|
| 262 | DWORD dwCurrentState;
|
---|
| 263 | DWORD dwControlsAccepted;
|
---|
| 264 | DWORD dwWin32ExitCode;
|
---|
| 265 | DWORD dwServiceSpecificExitCode;
|
---|
| 266 | DWORD dwCheckPoint;
|
---|
| 267 | DWORD dwWaitHint;
|
---|
| 268 | } SERVICE_STATUS,*LPSERVICE_STATUS;
|
---|
| 269 |
|
---|
| 270 | typedef struct _SERVICE_STATUS_PROCESS {
|
---|
| 271 | DWORD dwServiceType;
|
---|
| 272 | DWORD dwCurrentState;
|
---|
| 273 | DWORD dwControlsAccepted;
|
---|
| 274 | DWORD dwWin32ExitCode;
|
---|
| 275 | DWORD dwServiceSpecificExitCode;
|
---|
| 276 | DWORD dwCheckPoint;
|
---|
| 277 | DWORD dwWaitHint;
|
---|
| 278 | DWORD dwProcessId;
|
---|
| 279 | DWORD dwServiceFlags;
|
---|
| 280 | } SERVICE_STATUS_PROCESS,*LPSERVICE_STATUS_PROCESS;
|
---|
| 281 |
|
---|
| 282 | typedef struct _ENUM_SERVICE_STATUSA {
|
---|
| 283 | LPSTR lpServiceName;
|
---|
| 284 | LPSTR lpDisplayName;
|
---|
| 285 | SERVICE_STATUS ServiceStatus;
|
---|
| 286 | } ENUM_SERVICE_STATUSA,*LPENUM_SERVICE_STATUSA;
|
---|
| 287 |
|
---|
| 288 | typedef struct _ENUM_SERVICE_STATUSW {
|
---|
| 289 | LPWSTR lpServiceName;
|
---|
| 290 | LPWSTR lpDisplayName;
|
---|
| 291 | SERVICE_STATUS ServiceStatus;
|
---|
| 292 | } ENUM_SERVICE_STATUSW,*LPENUM_SERVICE_STATUSW;
|
---|
| 293 |
|
---|
| 294 | __MINGW_TYPEDEF_AW(ENUM_SERVICE_STATUS)
|
---|
| 295 | __MINGW_TYPEDEF_AW(LPENUM_SERVICE_STATUS)
|
---|
| 296 |
|
---|
| 297 | typedef struct _ENUM_SERVICE_STATUS_PROCESSA {
|
---|
| 298 | LPSTR lpServiceName;
|
---|
| 299 | LPSTR lpDisplayName;
|
---|
| 300 | SERVICE_STATUS_PROCESS ServiceStatusProcess;
|
---|
| 301 | } ENUM_SERVICE_STATUS_PROCESSA,*LPENUM_SERVICE_STATUS_PROCESSA;
|
---|
| 302 |
|
---|
| 303 | typedef struct _ENUM_SERVICE_STATUS_PROCESSW {
|
---|
| 304 | LPWSTR lpServiceName;
|
---|
| 305 | LPWSTR lpDisplayName;
|
---|
| 306 | SERVICE_STATUS_PROCESS ServiceStatusProcess;
|
---|
| 307 | } ENUM_SERVICE_STATUS_PROCESSW,*LPENUM_SERVICE_STATUS_PROCESSW;
|
---|
| 308 |
|
---|
| 309 | __MINGW_TYPEDEF_AW(ENUM_SERVICE_STATUS_PROCESS)
|
---|
| 310 | __MINGW_TYPEDEF_AW(LPENUM_SERVICE_STATUS_PROCESS)
|
---|
| 311 |
|
---|
| 312 | typedef LPVOID SC_LOCK;
|
---|
| 313 |
|
---|
| 314 | typedef struct _QUERY_SERVICE_LOCK_STATUSA {
|
---|
| 315 | DWORD fIsLocked;
|
---|
| 316 | LPSTR lpLockOwner;
|
---|
| 317 | DWORD dwLockDuration;
|
---|
| 318 | } QUERY_SERVICE_LOCK_STATUSA,*LPQUERY_SERVICE_LOCK_STATUSA;
|
---|
| 319 |
|
---|
| 320 | typedef struct _QUERY_SERVICE_LOCK_STATUSW {
|
---|
| 321 | DWORD fIsLocked;
|
---|
| 322 | LPWSTR lpLockOwner;
|
---|
| 323 | DWORD dwLockDuration;
|
---|
| 324 | } QUERY_SERVICE_LOCK_STATUSW,*LPQUERY_SERVICE_LOCK_STATUSW;
|
---|
| 325 |
|
---|
| 326 | __MINGW_TYPEDEF_AW(QUERY_SERVICE_LOCK_STATUS)
|
---|
| 327 | __MINGW_TYPEDEF_AW(LPQUERY_SERVICE_LOCK_STATUS)
|
---|
| 328 |
|
---|
| 329 | typedef struct _QUERY_SERVICE_CONFIGA {
|
---|
| 330 | DWORD dwServiceType;
|
---|
| 331 | DWORD dwStartType;
|
---|
| 332 | DWORD dwErrorControl;
|
---|
| 333 | LPSTR lpBinaryPathName;
|
---|
| 334 | LPSTR lpLoadOrderGroup;
|
---|
| 335 | DWORD dwTagId;
|
---|
| 336 | LPSTR lpDependencies;
|
---|
| 337 | LPSTR lpServiceStartName;
|
---|
| 338 | LPSTR lpDisplayName;
|
---|
| 339 | } QUERY_SERVICE_CONFIGA,*LPQUERY_SERVICE_CONFIGA;
|
---|
| 340 |
|
---|
| 341 | typedef struct _QUERY_SERVICE_CONFIGW {
|
---|
| 342 | DWORD dwServiceType;
|
---|
| 343 | DWORD dwStartType;
|
---|
| 344 | DWORD dwErrorControl;
|
---|
| 345 | LPWSTR lpBinaryPathName;
|
---|
| 346 | LPWSTR lpLoadOrderGroup;
|
---|
| 347 | DWORD dwTagId;
|
---|
| 348 | LPWSTR lpDependencies;
|
---|
| 349 | LPWSTR lpServiceStartName;
|
---|
| 350 | LPWSTR lpDisplayName;
|
---|
| 351 | } QUERY_SERVICE_CONFIGW,*LPQUERY_SERVICE_CONFIGW;
|
---|
| 352 |
|
---|
| 353 | __MINGW_TYPEDEF_AW(QUERY_SERVICE_CONFIG)
|
---|
| 354 | __MINGW_TYPEDEF_AW(LPQUERY_SERVICE_CONFIG)
|
---|
| 355 |
|
---|
| 356 | typedef VOID (WINAPI *LPSERVICE_MAIN_FUNCTIONW)(DWORD dwNumServicesArgs,LPWSTR *lpServiceArgVectors);
|
---|
| 357 | typedef VOID (WINAPI *LPSERVICE_MAIN_FUNCTIONA)(DWORD dwNumServicesArgs,LPSTR *lpServiceArgVectors);
|
---|
| 358 |
|
---|
| 359 | #define LPSERVICE_MAIN_FUNCTION __MINGW_NAME_AW(LPSERVICE_MAIN_FUNCTION)
|
---|
| 360 |
|
---|
| 361 | typedef struct _SERVICE_TABLE_ENTRYA {
|
---|
| 362 | LPSTR lpServiceName;
|
---|
| 363 | LPSERVICE_MAIN_FUNCTIONA lpServiceProc;
|
---|
| 364 | } SERVICE_TABLE_ENTRYA,*LPSERVICE_TABLE_ENTRYA;
|
---|
| 365 |
|
---|
| 366 | typedef struct _SERVICE_TABLE_ENTRYW {
|
---|
| 367 | LPWSTR lpServiceName;
|
---|
| 368 | LPSERVICE_MAIN_FUNCTIONW lpServiceProc;
|
---|
| 369 | } SERVICE_TABLE_ENTRYW,*LPSERVICE_TABLE_ENTRYW;
|
---|
| 370 |
|
---|
| 371 | __MINGW_TYPEDEF_AW(SERVICE_TABLE_ENTRY)
|
---|
| 372 | __MINGW_TYPEDEF_AW(LPSERVICE_TABLE_ENTRY)
|
---|
| 373 |
|
---|
| 374 | typedef VOID (WINAPI *LPHANDLER_FUNCTION)(DWORD dwControl);
|
---|
| 375 | typedef DWORD (WINAPI *LPHANDLER_FUNCTION_EX)(DWORD dwControl,DWORD dwEventType,LPVOID lpEventData,LPVOID lpContext);
|
---|
| 376 |
|
---|
| 377 | #define ChangeServiceConfig __MINGW_NAME_AW(ChangeServiceConfig)
|
---|
| 378 | #define ChangeServiceConfig2 __MINGW_NAME_AW(ChangeServiceConfig2)
|
---|
| 379 | #define CreateService __MINGW_NAME_AW(CreateService)
|
---|
| 380 | #define EnumDependentServices __MINGW_NAME_AW(EnumDependentServices)
|
---|
| 381 | #define EnumServicesStatus __MINGW_NAME_AW(EnumServicesStatus)
|
---|
| 382 | #define EnumServicesStatusEx __MINGW_NAME_AW(EnumServicesStatusEx)
|
---|
| 383 | #define GetServiceKeyName __MINGW_NAME_AW(GetServiceKeyName)
|
---|
| 384 | #define GetServiceDisplayName __MINGW_NAME_AW(GetServiceDisplayName)
|
---|
| 385 | #define OpenSCManager __MINGW_NAME_AW(OpenSCManager)
|
---|
| 386 | #define OpenService __MINGW_NAME_AW(OpenService)
|
---|
| 387 | #define QueryServiceConfig __MINGW_NAME_AW(QueryServiceConfig)
|
---|
| 388 | #define QueryServiceConfig2 __MINGW_NAME_AW(QueryServiceConfig2)
|
---|
| 389 | #define QueryServiceLockStatus __MINGW_NAME_AW(QueryServiceLockStatus)
|
---|
| 390 | #define RegisterServiceCtrlHandler __MINGW_NAME_AW(RegisterServiceCtrlHandler)
|
---|
| 391 | #define RegisterServiceCtrlHandlerEx __MINGW_NAME_AW(RegisterServiceCtrlHandlerEx)
|
---|
| 392 | #define StartServiceCtrlDispatcher __MINGW_NAME_AW(StartServiceCtrlDispatcher)
|
---|
| 393 | #define StartService __MINGW_NAME_AW(StartService)
|
---|
| 394 |
|
---|
| 395 | WINADVAPI WINBOOL WINAPI ChangeServiceConfigA(SC_HANDLE hService,DWORD dwServiceType,DWORD dwStartType,DWORD dwErrorControl,LPCSTR lpBinaryPathName,LPCSTR lpLoadOrderGroup,LPDWORD lpdwTagId,LPCSTR lpDependencies,LPCSTR lpServiceStartName,LPCSTR lpPassword,LPCSTR lpDisplayName);
|
---|
| 396 | WINADVAPI WINBOOL WINAPI ChangeServiceConfigW(SC_HANDLE hService,DWORD dwServiceType,DWORD dwStartType,DWORD dwErrorControl,LPCWSTR lpBinaryPathName,LPCWSTR lpLoadOrderGroup,LPDWORD lpdwTagId,LPCWSTR lpDependencies,LPCWSTR lpServiceStartName,LPCWSTR lpPassword,LPCWSTR lpDisplayName);
|
---|
| 397 | WINADVAPI WINBOOL WINAPI ChangeServiceConfig2A(SC_HANDLE hService,DWORD dwInfoLevel,LPVOID lpInfo);
|
---|
| 398 | WINADVAPI WINBOOL WINAPI ChangeServiceConfig2W(SC_HANDLE hService,DWORD dwInfoLevel,LPVOID lpInfo);
|
---|
| 399 | WINADVAPI WINBOOL WINAPI CloseServiceHandle(SC_HANDLE hSCObject);
|
---|
| 400 | WINADVAPI WINBOOL WINAPI ControlService(SC_HANDLE hService,DWORD dwControl,LPSERVICE_STATUS lpServiceStatus);
|
---|
| 401 | WINADVAPI SC_HANDLE WINAPI CreateServiceA(SC_HANDLE hSCManager,LPCSTR lpServiceName,LPCSTR lpDisplayName,DWORD dwDesiredAccess,DWORD dwServiceType,DWORD dwStartType,DWORD dwErrorControl,LPCSTR lpBinaryPathName,LPCSTR lpLoadOrderGroup,LPDWORD lpdwTagId,LPCSTR lpDependencies,LPCSTR lpServiceStartName,LPCSTR lpPassword);
|
---|
| 402 | WINADVAPI SC_HANDLE WINAPI CreateServiceW(SC_HANDLE hSCManager,LPCWSTR lpServiceName,LPCWSTR lpDisplayName,DWORD dwDesiredAccess,DWORD dwServiceType,DWORD dwStartType,DWORD dwErrorControl,LPCWSTR lpBinaryPathName,LPCWSTR lpLoadOrderGroup,LPDWORD lpdwTagId,LPCWSTR lpDependencies,LPCWSTR lpServiceStartName,LPCWSTR lpPassword);
|
---|
| 403 | WINADVAPI WINBOOL WINAPI DeleteService(SC_HANDLE hService);
|
---|
| 404 | WINADVAPI WINBOOL WINAPI EnumDependentServicesA(SC_HANDLE hService,DWORD dwServiceState,LPENUM_SERVICE_STATUSA lpServices,DWORD cbBufSize,LPDWORD pcbBytesNeeded,LPDWORD lpServicesReturned);
|
---|
| 405 | WINADVAPI WINBOOL WINAPI EnumDependentServicesW(SC_HANDLE hService,DWORD dwServiceState,LPENUM_SERVICE_STATUSW lpServices,DWORD cbBufSize,LPDWORD pcbBytesNeeded,LPDWORD lpServicesReturned);
|
---|
| 406 | WINADVAPI WINBOOL WINAPI EnumServicesStatusA(SC_HANDLE hSCManager,DWORD dwServiceType,DWORD dwServiceState,LPENUM_SERVICE_STATUSA lpServices,DWORD cbBufSize,LPDWORD pcbBytesNeeded,LPDWORD lpServicesReturned,LPDWORD lpResumeHandle);
|
---|
| 407 | WINADVAPI WINBOOL WINAPI EnumServicesStatusW(SC_HANDLE hSCManager,DWORD dwServiceType,DWORD dwServiceState,LPENUM_SERVICE_STATUSW lpServices,DWORD cbBufSize,LPDWORD pcbBytesNeeded,LPDWORD lpServicesReturned,LPDWORD lpResumeHandle);
|
---|
| 408 | WINADVAPI WINBOOL WINAPI EnumServicesStatusExA(SC_HANDLE hSCManager,SC_ENUM_TYPE InfoLevel,DWORD dwServiceType,DWORD dwServiceState,LPBYTE lpServices,DWORD cbBufSize,LPDWORD pcbBytesNeeded,LPDWORD lpServicesReturned,LPDWORD lpResumeHandle,LPCSTR pszGroupName);
|
---|
| 409 | WINADVAPI WINBOOL WINAPI EnumServicesStatusExW(SC_HANDLE hSCManager,SC_ENUM_TYPE InfoLevel,DWORD dwServiceType,DWORD dwServiceState,LPBYTE lpServices,DWORD cbBufSize,LPDWORD pcbBytesNeeded,LPDWORD lpServicesReturned,LPDWORD lpResumeHandle,LPCWSTR pszGroupName);
|
---|
| 410 | WINADVAPI WINBOOL WINAPI GetServiceKeyNameA(SC_HANDLE hSCManager,LPCSTR lpDisplayName,LPSTR lpServiceName,LPDWORD lpcchBuffer);
|
---|
| 411 | WINADVAPI WINBOOL WINAPI GetServiceKeyNameW(SC_HANDLE hSCManager,LPCWSTR lpDisplayName,LPWSTR lpServiceName,LPDWORD lpcchBuffer);
|
---|
| 412 | WINADVAPI WINBOOL WINAPI GetServiceDisplayNameA(SC_HANDLE hSCManager,LPCSTR lpServiceName,LPSTR lpDisplayName,LPDWORD lpcchBuffer);
|
---|
| 413 | WINADVAPI WINBOOL WINAPI GetServiceDisplayNameW(SC_HANDLE hSCManager,LPCWSTR lpServiceName,LPWSTR lpDisplayName,LPDWORD lpcchBuffer);
|
---|
| 414 | WINADVAPI SC_LOCK WINAPI LockServiceDatabase(SC_HANDLE hSCManager);
|
---|
| 415 | WINADVAPI WINBOOL WINAPI NotifyBootConfigStatus(WINBOOL BootAcceptable);
|
---|
| 416 | WINADVAPI SC_HANDLE WINAPI OpenSCManagerA(LPCSTR lpMachineName,LPCSTR lpDatabaseName,DWORD dwDesiredAccess);
|
---|
| 417 | WINADVAPI SC_HANDLE WINAPI OpenSCManagerW(LPCWSTR lpMachineName,LPCWSTR lpDatabaseName,DWORD dwDesiredAccess);
|
---|
| 418 | WINADVAPI SC_HANDLE WINAPI OpenServiceA(SC_HANDLE hSCManager,LPCSTR lpServiceName,DWORD dwDesiredAccess);
|
---|
| 419 | WINADVAPI SC_HANDLE WINAPI OpenServiceW(SC_HANDLE hSCManager,LPCWSTR lpServiceName,DWORD dwDesiredAccess);
|
---|
| 420 | WINADVAPI WINBOOL WINAPI QueryServiceConfigA(SC_HANDLE hService,LPQUERY_SERVICE_CONFIGA lpServiceConfig,DWORD cbBufSize,LPDWORD pcbBytesNeeded);
|
---|
| 421 | WINADVAPI WINBOOL WINAPI QueryServiceConfigW(SC_HANDLE hService,LPQUERY_SERVICE_CONFIGW lpServiceConfig,DWORD cbBufSize,LPDWORD pcbBytesNeeded);
|
---|
| 422 | WINADVAPI WINBOOL WINAPI QueryServiceConfig2A(SC_HANDLE hService,DWORD dwInfoLevel,LPBYTE lpBuffer,DWORD cbBufSize,LPDWORD pcbBytesNeeded);
|
---|
| 423 | WINADVAPI WINBOOL WINAPI QueryServiceConfig2W(SC_HANDLE hService,DWORD dwInfoLevel,LPBYTE lpBuffer,DWORD cbBufSize,LPDWORD pcbBytesNeeded);
|
---|
| 424 | WINADVAPI WINBOOL WINAPI QueryServiceLockStatusA(SC_HANDLE hSCManager,LPQUERY_SERVICE_LOCK_STATUSA lpLockStatus,DWORD cbBufSize,LPDWORD pcbBytesNeeded);
|
---|
| 425 | WINADVAPI WINBOOL WINAPI QueryServiceLockStatusW(SC_HANDLE hSCManager,LPQUERY_SERVICE_LOCK_STATUSW lpLockStatus,DWORD cbBufSize,LPDWORD pcbBytesNeeded);
|
---|
| 426 | WINADVAPI WINBOOL WINAPI QueryServiceObjectSecurity(SC_HANDLE hService,SECURITY_INFORMATION dwSecurityInformation,PSECURITY_DESCRIPTOR lpSecurityDescriptor,DWORD cbBufSize,LPDWORD pcbBytesNeeded);
|
---|
| 427 | WINADVAPI WINBOOL WINAPI QueryServiceStatus(SC_HANDLE hService,LPSERVICE_STATUS lpServiceStatus);
|
---|
| 428 | WINADVAPI WINBOOL WINAPI QueryServiceStatusEx(SC_HANDLE hService,SC_STATUS_TYPE InfoLevel,LPBYTE lpBuffer,DWORD cbBufSize,LPDWORD pcbBytesNeeded);
|
---|
| 429 | WINADVAPI SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerA(LPCSTR lpServiceName,LPHANDLER_FUNCTION lpHandlerProc);
|
---|
| 430 | WINADVAPI SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerW(LPCWSTR lpServiceName,LPHANDLER_FUNCTION lpHandlerProc);
|
---|
| 431 | WINADVAPI SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExA(LPCSTR lpServiceName,LPHANDLER_FUNCTION_EX lpHandlerProc,LPVOID lpContext);
|
---|
| 432 | WINADVAPI SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExW(LPCWSTR lpServiceName,LPHANDLER_FUNCTION_EX lpHandlerProc,LPVOID lpContext);
|
---|
| 433 | WINADVAPI WINBOOL WINAPI SetServiceObjectSecurity(SC_HANDLE hService,SECURITY_INFORMATION dwSecurityInformation,PSECURITY_DESCRIPTOR lpSecurityDescriptor);
|
---|
| 434 | WINADVAPI WINBOOL WINAPI SetServiceStatus(SERVICE_STATUS_HANDLE hServiceStatus,LPSERVICE_STATUS lpServiceStatus);
|
---|
| 435 | WINADVAPI WINBOOL WINAPI StartServiceCtrlDispatcherA(CONST SERVICE_TABLE_ENTRYA *lpServiceStartTable);
|
---|
| 436 | WINADVAPI WINBOOL WINAPI StartServiceCtrlDispatcherW(CONST SERVICE_TABLE_ENTRYW *lpServiceStartTable);
|
---|
| 437 | WINADVAPI WINBOOL WINAPI StartServiceA(SC_HANDLE hService,DWORD dwNumServiceArgs,LPCSTR *lpServiceArgVectors);
|
---|
| 438 | WINADVAPI WINBOOL WINAPI StartServiceW(SC_HANDLE hService,DWORD dwNumServiceArgs,LPCWSTR *lpServiceArgVectors);
|
---|
| 439 | WINADVAPI WINBOOL WINAPI UnlockServiceDatabase(SC_LOCK ScLock);
|
---|
| 440 |
|
---|
| 441 | #if (_WIN32_WINNT >= 0x0600)
|
---|
| 442 |
|
---|
| 443 | typedef VOID( CALLBACK * PFN_SC_NOTIFY_CALLBACK ) (
|
---|
| 444 | PVOID pParameter
|
---|
| 445 | );
|
---|
| 446 |
|
---|
| 447 | typedef struct _SERVICE_CONTROL_STATUS_REASON_PARAMSA {
|
---|
| 448 | DWORD dwReason;
|
---|
| 449 | LPSTR pszComment;
|
---|
| 450 | SERVICE_STATUS_PROCESS ServiceStatus;
|
---|
| 451 | } SERVICE_CONTROL_STATUS_REASON_PARAMSA, *PSERVICE_CONTROL_STATUS_REASON_PARAMSA;
|
---|
| 452 |
|
---|
| 453 | typedef struct _SERVICE_CONTROL_STATUS_REASON_PARAMSW {
|
---|
| 454 | DWORD dwReason;
|
---|
| 455 | LPWSTR pszComment;
|
---|
| 456 | SERVICE_STATUS_PROCESS ServiceStatus;
|
---|
| 457 | } SERVICE_CONTROL_STATUS_REASON_PARAMSW, *PSERVICE_CONTROL_STATUS_REASON_PARAMSW;
|
---|
| 458 |
|
---|
| 459 | __MINGW_TYPEDEF_AW(SERVICE_CONTROL_STATUS_REASON_PARAMS)
|
---|
| 460 | __MINGW_TYPEDEF_AW(PSERVICE_CONTROL_STATUS_REASON_PARAMS)
|
---|
| 461 |
|
---|
| 462 | #define SERVICE_STOP_REASON_FLAG_CUSTOM 0x20000000
|
---|
| 463 | #define SERVICE_STOP_REASON_FLAG_PLANNED 0x40000000
|
---|
| 464 | #define SERVICE_STOP_REASON_FLAG_UNPLANNED 0x10000000
|
---|
| 465 |
|
---|
| 466 | #define SERVICE_STOP_REASON_MAJOR_APPLICATION 0x00050000
|
---|
| 467 | #define SERVICE_STOP_REASON_MAJOR_HARDWARE 0x00020000
|
---|
| 468 | #define SERVICE_STOP_REASON_MAJOR_NONE 0x00060000
|
---|
| 469 | #define SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM 0x00030000
|
---|
| 470 | #define SERVICE_STOP_REASON_MAJOR_OTHER 0x00010000
|
---|
| 471 | #define SERVICE_STOP_REASON_MAJOR_SOFTWARE 0x00040000
|
---|
| 472 |
|
---|
| 473 | #define SERVICE_STOP_REASON_MINOR_DISK 0x00000008
|
---|
| 474 | #define SERVICE_STOP_REASON_MINOR_ENVIRONMENT 0x0000000a
|
---|
| 475 | #define SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER 0x0000000b
|
---|
| 476 | #define SERVICE_STOP_REASON_MINOR_HUNG 0x00000006
|
---|
| 477 | #define SERVICE_STOP_REASON_MINOR_INSTALLATION 0x00000003
|
---|
| 478 | #define SERVICE_STOP_REASON_MINOR_MAINTENANCE 0x00000002
|
---|
| 479 | #define SERVICE_STOP_REASON_MINOR_MMC 0x00000016
|
---|
| 480 | #define SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY 0x00000011
|
---|
| 481 | #define SERVICE_STOP_REASON_MINOR_NETWORKCARD 0x00000009
|
---|
| 482 | #define SERVICE_STOP_REASON_MINOR_OTHER 0x00000001
|
---|
| 483 | #define SERVICE_STOP_REASON_MINOR_OTHERDRIVER 0x0000000c
|
---|
| 484 | #define SERVICE_STOP_REASON_MINOR_RECONFIG 0x00000005
|
---|
| 485 | #define SERVICE_STOP_REASON_MINOR_SECURITY 0x00000010
|
---|
| 486 | #define SERVICE_STOP_REASON_MINOR_SECURITYFIX 0x0000000f
|
---|
| 487 | #define SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL 0x00000015
|
---|
| 488 | #define SERVICE_STOP_REASON_MINOR_SERVICEPACK 0x0000000d
|
---|
| 489 | #define SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL 0x00000013
|
---|
| 490 | #define SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE 0x0000000e
|
---|
| 491 | #define SERVICE_STOP_REASON_MINOR_UNSTABLE 0x00000007
|
---|
| 492 | #define SERVICE_STOP_REASON_MINOR_UPGRADE 0x00000004
|
---|
| 493 | #define SERVICE_STOP_REASON_MINOR_WMI 0x00000012
|
---|
| 494 |
|
---|
| 495 | typedef struct _SERVICE_NOTIFYA {
|
---|
| 496 | DWORD dwVersion;
|
---|
| 497 | PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback;
|
---|
| 498 | PVOID pContext;
|
---|
| 499 | DWORD dwNotificationStatus;
|
---|
| 500 | SERVICE_STATUS_PROCESS ServiceStatus;
|
---|
| 501 | DWORD dwNotificationTriggered;
|
---|
| 502 | LPSTR pszServiceNames;
|
---|
| 503 | } SERVICE_NOTIFYA, *PSERVICE_NOTIFYA;
|
---|
| 504 |
|
---|
| 505 | typedef struct _SERVICE_NOTIFYW {
|
---|
| 506 | DWORD dwVersion;
|
---|
| 507 | PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback;
|
---|
| 508 | PVOID pContext;
|
---|
| 509 | DWORD dwNotificationStatus;
|
---|
| 510 | SERVICE_STATUS_PROCESS ServiceStatus;
|
---|
| 511 | DWORD dwNotificationTriggered;
|
---|
| 512 | LPWSTR pszServiceNames;
|
---|
| 513 | } SERVICE_NOTIFYW, *PSERVICE_NOTIFYW;
|
---|
| 514 |
|
---|
| 515 | __MINGW_TYPEDEF_AW(SERVICE_NOTIFY)
|
---|
| 516 | __MINGW_TYPEDEF_AW(PSERVICE_NOTIFY)
|
---|
| 517 |
|
---|
| 518 | #define SERVICE_CONFIG_DELAYED_AUTO_START_INFO 3
|
---|
| 519 | #define SERVICE_CONFIG_FAILURE_ACTIONS_FLAG 4
|
---|
| 520 | #define SERVICE_CONFIG_SERVICE_SID_INFO 5
|
---|
| 521 | #define SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO 6
|
---|
| 522 | #define SERVICE_CONFIG_PRESHUTDOWN_INFO 7
|
---|
| 523 |
|
---|
| 524 | typedef struct _SERVICE_DELAYED_AUTO_START_INFO {
|
---|
| 525 | WINBOOL fDelayedAutostart;
|
---|
| 526 | } SERVICE_DELAYED_AUTO_START_INFO, *LPSERVICE_DELAYED_AUTO_START_INFO;
|
---|
| 527 |
|
---|
| 528 | typedef struct _SERVICE_FAILURE_ACTIONS_FLAG {
|
---|
| 529 | WINBOOL fFailureActionsOnNonCrashFailures;
|
---|
| 530 | } SERVICE_FAILURE_ACTIONS_FLAG, *LPSERVICE_FAILURE_ACTIONS_FLAG;
|
---|
| 531 |
|
---|
| 532 | typedef struct _SERVICE_PRESHUTDOWN_INFO {
|
---|
| 533 | DWORD dwPreshutdownTimeout;
|
---|
| 534 | } SERVICE_PRESHUTDOWN_INFO, *LPSERVICE_PRESHUTDOWN_INFO;
|
---|
| 535 |
|
---|
| 536 | typedef struct _SERVICE_REQUIRED_PRIVILEGES_INFOA {
|
---|
| 537 | LPSTR pmszRequiredPrivileges;
|
---|
| 538 | } SERVICE_REQUIRED_PRIVILEGES_INFOA, *LPSERVICE_REQUIRED_PRIVILEGES_INFOA;
|
---|
| 539 |
|
---|
| 540 | typedef struct _SERVICE_REQUIRED_PRIVILEGES_INFOW {
|
---|
| 541 | LPWSTR pmszRequiredPrivileges;
|
---|
| 542 | } SERVICE_REQUIRED_PRIVILEGES_INFOW, *LPSERVICE_REQUIRED_PRIVILEGES_INFOW;
|
---|
| 543 |
|
---|
| 544 | __MINGW_TYPEDEF_AW(SERVICE_REQUIRED_PRIVILEGES_INFO)
|
---|
| 545 |
|
---|
| 546 | #define SERVICE_SID_TYPE_NONE 0x00000000
|
---|
| 547 | #define SERVICE_SID_TYPE_RESTRICTED 0x00000003
|
---|
| 548 | #define SERVICE_SID_TYPE_UNRESTRICTED 0x00000001
|
---|
| 549 |
|
---|
| 550 | typedef struct _SERVICE_SID_INFO {
|
---|
| 551 | DWORD dwServiceSidType;
|
---|
| 552 | } SERVICE_SID_INFO, *LPSERVICE_SID_INFO;
|
---|
| 553 |
|
---|
| 554 | WINADVAPI WINBOOL WINAPI ControlServiceExA(
|
---|
| 555 | SC_HANDLE hService,
|
---|
| 556 | DWORD dwControl,
|
---|
| 557 | DWORD dwInfoLevel,
|
---|
| 558 | PVOID pControlParams
|
---|
| 559 | );
|
---|
| 560 |
|
---|
| 561 | WINADVAPI WINBOOL WINAPI ControlServiceExW(
|
---|
| 562 | SC_HANDLE hService,
|
---|
| 563 | DWORD dwControl,
|
---|
| 564 | DWORD dwInfoLevel,
|
---|
| 565 | PVOID pControlParams
|
---|
| 566 | );
|
---|
| 567 |
|
---|
| 568 | #define ControlServiceEx __MINGW_NAME_AW(ControlServiceEx)
|
---|
| 569 |
|
---|
| 570 | #define NotifyServiceStatusChange __MINGW_NAME_AW(NotifyServiceStatusChange)
|
---|
| 571 |
|
---|
| 572 | DWORD WINAPI NotifyServiceStatusChangeA(
|
---|
| 573 | SC_HANDLE hService,
|
---|
| 574 | DWORD dwNotifyMask,
|
---|
| 575 | PSERVICE_NOTIFYA pNotifyBuffer
|
---|
| 576 | );
|
---|
| 577 |
|
---|
| 578 | DWORD WINAPI NotifyServiceStatusChangeW(
|
---|
| 579 | SC_HANDLE hService,
|
---|
| 580 | DWORD dwNotifyMask,
|
---|
| 581 | PSERVICE_NOTIFYW pNotifyBuffer
|
---|
| 582 | );
|
---|
| 583 |
|
---|
| 584 | #endif /*(_WIN32_WINNT >= 0x0600)*/
|
---|
| 585 |
|
---|
| 586 | #ifdef __cplusplus
|
---|
| 587 | }
|
---|
| 588 | #endif
|
---|
| 589 |
|
---|
| 590 | #endif /* _WINSVC_ */
|
---|