| 1 | /* $Id: winsvc.h,v 1.1 1999-12-21 00:29:31 sandervl Exp $ */
 | 
|---|
| 2 | #ifndef __WINSVC_H__
 | 
|---|
| 3 | #define __WINSVC_H__
 | 
|---|
| 4 | 
 | 
|---|
| 5 | #include "winbase.h"
 | 
|---|
| 6 | 
 | 
|---|
| 7 | #define SERVICES_ACTIVE_DATABASEW      L"ServicesActive"
 | 
|---|
| 8 | #define SERVICES_FAILED_DATABASEW      L"ServicesFailed"
 | 
|---|
| 9 | 
 | 
|---|
| 10 | #define SERVICES_ACTIVE_DATABASEA      "ServicesActive"
 | 
|---|
| 11 | #define SERVICES_FAILED_DATABASEA      "ServicesFailed"
 | 
|---|
| 12 | 
 | 
|---|
| 13 | #define SC_GROUP_IDENTIFIERW           L'+'
 | 
|---|
| 14 | #define SC_GROUP_IDENTIFIERA           '+'
 | 
|---|
| 15 | 
 | 
|---|
| 16 | #ifdef UNICODE
 | 
|---|
| 17 | #define SERVICES_ACTIVE_DATABASE       SERVICES_ACTIVE_DATABASEW
 | 
|---|
| 18 | #define SERVICES_FAILED_DATABASE       SERVICES_FAILED_DATABASEW
 | 
|---|
| 19 | #define SC_GROUP_IDENTIFIER            SC_GROUP_IDENTIFIERW
 | 
|---|
| 20 | #else
 | 
|---|
| 21 | #define SERVICES_ACTIVE_DATABASE       SERVICES_ACTIVE_DATABASEA
 | 
|---|
| 22 | #define SERVICES_FAILED_DATABASE       SERVICES_FAILED_DATABASEA
 | 
|---|
| 23 | #define SC_GROUP_IDENTIFIER            SC_GROUP_IDENTIFIERA
 | 
|---|
| 24 | #endif
 | 
|---|
| 25 | 
 | 
|---|
| 26 | 
 | 
|---|
| 27 | #define SERVICE_NO_CHANGE              0xffffffff
 | 
|---|
| 28 | 
 | 
|---|
| 29 | #define SERVICE_ACTIVE                 0x00000001
 | 
|---|
| 30 | #define SERVICE_INACTIVE               0x00000002
 | 
|---|
| 31 | #define SERVICE_STATE_ALL              (SERVICE_ACTIVE|SERVICE_INACTIVE)
 | 
|---|
| 32 | 
 | 
|---|
| 33 | #define SERVICE_CONTROL_STOP           0x00000001
 | 
|---|
| 34 | #define SERVICE_CONTROL_PAUSE          0x00000002
 | 
|---|
| 35 | #define SERVICE_CONTROL_CONTINUE       0x00000003
 | 
|---|
| 36 | #define SERVICE_CONTROL_INTERROGATE    0x00000004
 | 
|---|
| 37 | #define SERVICE_CONTROL_SHUTDOWN       0x00000005
 | 
|---|
| 38 | 
 | 
|---|
| 39 | #define SERVICE_STOPPED                0x00000001
 | 
|---|
| 40 | #define SERVICE_START_PENDING          0x00000002
 | 
|---|
| 41 | #define SERVICE_STOP_PENDING           0x00000003
 | 
|---|
| 42 | #define SERVICE_RUNNING                0x00000004
 | 
|---|
| 43 | #define SERVICE_CONTINUE_PENDING       0x00000005
 | 
|---|
| 44 | #define SERVICE_PAUSE_PENDING          0x00000006
 | 
|---|
| 45 | #define SERVICE_PAUSED                 0x00000007
 | 
|---|
| 46 | 
 | 
|---|
| 47 | #define SERVICE_ACCEPT_STOP            0x00000001
 | 
|---|
| 48 | #define SERVICE_ACCEPT_PAUSE_CONTINUE  0x00000002
 | 
|---|
| 49 | #define SERVICE_ACCEPT_SHUTDOWN        0x00000004
 | 
|---|
| 50 | 
 | 
|---|
| 51 | #define SC_MANAGER_CONNECT             0x0001
 | 
|---|
| 52 | #define SC_MANAGER_CREATE_SERVICE      0x0002
 | 
|---|
| 53 | #define SC_MANAGER_ENUMERATE_SERVICE   0x0004
 | 
|---|
| 54 | #define SC_MANAGER_LOCK                0x0008
 | 
|---|
| 55 | #define SC_MANAGER_QUERY_LOCK_STATUS   0x0010
 | 
|---|
| 56 | #define SC_MANAGER_MODIFY_BOOT_CONFIG  0x0020
 | 
|---|
| 57 | 
 | 
|---|
| 58 | #define SC_MANAGER_ALL_ACCESS          (STANDARD_RIGHTS_REQUIRED|SC_MANAGER_CONNECT| \
 | 
|---|
| 59 |                                         SC_MANAGER_CREATE_SERVICE|SC_MANAGER_ENUMERATE_SERVICE| \
 | 
|---|
| 60 |                                         SC_MANAGER_LOCK|SC_MANAGER_QUERY_LOCK_STATUS| \
 | 
|---|
| 61 |                                         SC_MANAGER_MODIFY_BOOT_CONFIG)
 | 
|---|
| 62 | 
 | 
|---|
| 63 | #define SERVICE_QUERY_CONFIG           0x0001
 | 
|---|
| 64 | #define SERVICE_CHANGE_CONFIG          0x0002
 | 
|---|
| 65 | #define SERVICE_QUERY_STATUS           0x0004
 | 
|---|
| 66 | #define SERVICE_ENUMERATE_DEPENDENTS   0x0008
 | 
|---|
| 67 | #define SERVICE_START                  0x0010
 | 
|---|
| 68 | #define SERVICE_STOP                   0x0020
 | 
|---|
| 69 | #define SERVICE_PAUSE_CONTINUE         0x0040
 | 
|---|
| 70 | #define SERVICE_INTERROGATE            0x0080
 | 
|---|
| 71 | #define SERVICE_USER_DEFINED_CONTROL   0x0100
 | 
|---|
| 72 | 
 | 
|---|
| 73 | #define SERVICE_ALL_ACCESS             (STANDARD_RIGHTS_REQUIRED|SERVICE_QUERY_CONFIG| \
 | 
|---|
| 74 |                                         SERVICE_CHANGE_CONFIG|SERVICE_QUERY_STATUS| \
 | 
|---|
| 75 |                                         SERVICE_ENUMERATE_DEPENDENTS|SERVICE_START| \
 | 
|---|
| 76 |                                         SERVICE_STOP|SERVICE_PAUSE_CONTINUE| \
 | 
|---|
| 77 |                                         SERVICE_INTERROGATE|SERVICE_USER_DEFINED_CONTROL)
 | 
|---|
| 78 | 
 | 
|---|
| 79 | typedef HANDLE          SC_HANDLE;
 | 
|---|
| 80 | typedef SC_HANDLE      *LPSC_HANDLE;
 | 
|---|
| 81 | typedef LPVOID          SC_LOCK;
 | 
|---|
| 82 | typedef DWORD           SERVICE_STATUS_HANDLE;
 | 
|---|
| 83 | typedef VOID (* WINAPI LPHANDLER_FUNCTION)(DWORD dwControl);
 | 
|---|
| 84 | 
 | 
|---|
| 85 | 
 | 
|---|
| 86 | typedef struct _SERVICE_STATUS {
 | 
|---|
| 87 |     DWORD   dwServiceType;
 | 
|---|
| 88 |     DWORD   dwCurrentState;
 | 
|---|
| 89 |     DWORD   dwControlsAccepted;
 | 
|---|
| 90 |     DWORD   dwWin32ExitCode;
 | 
|---|
| 91 |     DWORD   dwServiceSpecificExitCode;
 | 
|---|
| 92 |     DWORD   dwCheckPoint;
 | 
|---|
| 93 |     DWORD   dwWaitHint;
 | 
|---|
| 94 | } SERVICE_STATUS, *LPSERVICE_STATUS;
 | 
|---|
| 95 | 
 | 
|---|
| 96 | typedef struct _ENUM_SERVICE_STATUSA {
 | 
|---|
| 97 |     LPSTR          lpServiceName;
 | 
|---|
| 98 |     LPSTR          lpDisplayName;
 | 
|---|
| 99 |     SERVICE_STATUS ServiceStatus;
 | 
|---|
| 100 | } ENUM_SERVICE_STATUSA, *LPENUM_SERVICE_STATUSA;
 | 
|---|
| 101 | 
 | 
|---|
| 102 | typedef struct _ENUM_SERVICE_STATUSW {
 | 
|---|
| 103 |     LPWSTR         lpServiceName;
 | 
|---|
| 104 |     LPWSTR         lpDisplayName;
 | 
|---|
| 105 |     SERVICE_STATUS ServiceStatus;
 | 
|---|
| 106 | } ENUM_SERVICE_STATUSW, *LPENUM_SERVICE_STATUSW;
 | 
|---|
| 107 | 
 | 
|---|
| 108 | typedef struct _QUERY_SERVICE_LOCK_STATUSA {
 | 
|---|
| 109 |     DWORD   fIsLocked;
 | 
|---|
| 110 |     LPSTR   lpLockOwner;
 | 
|---|
| 111 |     DWORD   dwLockDuration;
 | 
|---|
| 112 | } QUERY_SERVICE_LOCK_STATUSA, *LPQUERY_SERVICE_LOCK_STATUSA;
 | 
|---|
| 113 | 
 | 
|---|
| 114 | typedef struct _QUERY_SERVICE_LOCK_STATUSW {
 | 
|---|
| 115 |     DWORD   fIsLocked;
 | 
|---|
| 116 |     LPWSTR  lpLockOwner;
 | 
|---|
| 117 |     DWORD   dwLockDuration;
 | 
|---|
| 118 | } QUERY_SERVICE_LOCK_STATUSW, *LPQUERY_SERVICE_LOCK_STATUSW;
 | 
|---|
| 119 | 
 | 
|---|
| 120 | typedef struct _QUERY_SERVICE_CONFIGA {
 | 
|---|
| 121 |     DWORD   dwServiceType;
 | 
|---|
| 122 |     DWORD   dwStartType;
 | 
|---|
| 123 |     DWORD   dwErrorControl;
 | 
|---|
| 124 |     LPSTR   lpBinaryPathName;
 | 
|---|
| 125 |     LPSTR   lpLoadOrderGroup;
 | 
|---|
| 126 |     DWORD   dwTagId;
 | 
|---|
| 127 |     LPSTR   lpDependencies;
 | 
|---|
| 128 |     LPSTR   lpServiceStartName;
 | 
|---|
| 129 |     LPSTR   lpDisplayName;
 | 
|---|
| 130 | } QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA;
 | 
|---|
| 131 | 
 | 
|---|
| 132 | typedef struct _QUERY_SERVICE_CONFIGW {
 | 
|---|
| 133 |     DWORD   dwServiceType;
 | 
|---|
| 134 |     DWORD   dwStartType;
 | 
|---|
| 135 |     DWORD   dwErrorControl;
 | 
|---|
| 136 |     LPWSTR  lpBinaryPathName;
 | 
|---|
| 137 |     LPWSTR  lpLoadOrderGroup;
 | 
|---|
| 138 |     DWORD   dwTagId;
 | 
|---|
| 139 |     LPWSTR  lpDependencies;
 | 
|---|
| 140 |     LPWSTR  lpServiceStartName;
 | 
|---|
| 141 |     LPWSTR  lpDisplayName;
 | 
|---|
| 142 | } QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW;
 | 
|---|
| 143 | 
 | 
|---|
| 144 | /* service main function prototype */
 | 
|---|
| 145 | typedef VOID (* CALLBACK LPSERVICE_MAIN_FUNCTIONA)(DWORD,LPSTR);
 | 
|---|
| 146 | typedef VOID (* CALLBACK LPSERVICE_MAIN_FUNCTIONW)(DWORD,LPWSTR);
 | 
|---|
| 147 | DECL_WINELIB_TYPE_AW(LPSERVICE_MAIN_FUNCTION)
 | 
|---|
| 148 | 
 | 
|---|
| 149 | /* service start table */
 | 
|---|
| 150 | typedef struct
 | 
|---|
| 151 | {
 | 
|---|
| 152 |     LPSTR                       lpServiceName;
 | 
|---|
| 153 |     LPSERVICE_MAIN_FUNCTIONA    lpServiceProc;
 | 
|---|
| 154 | } *LPSERVICE_TABLE_ENTRYA, SERVICE_TABLE_ENTRYA;
 | 
|---|
| 155 | 
 | 
|---|
| 156 | typedef struct
 | 
|---|
| 157 | {
 | 
|---|
| 158 |     LPWSTR                      lpServiceName;
 | 
|---|
| 159 |     LPSERVICE_MAIN_FUNCTIONW    lpServiceProc;
 | 
|---|
| 160 | } *LPSERVICE_TABLE_ENTRYW, SERVICE_TABLE_ENTRYW;
 | 
|---|
| 161 | 
 | 
|---|
| 162 | DECL_WINELIB_TYPE_AW(SERVICE_TABLE_ENTRY)
 | 
|---|
| 163 | DECL_WINELIB_TYPE_AW(LPSERVICE_TABLE_ENTRY)
 | 
|---|
| 164 | 
 | 
|---|
| 165 | #ifdef UNICODE
 | 
|---|
| 166 | typedef QUERY_SERVICE_LOCK_STATUSW      QUERY_SERVICE_LOCK_STATUS;
 | 
|---|
| 167 | typedef LPQUERY_SERVICE_LOCK_STATUSW    LPQUERY_SERVICE_LOCK_STATUS;
 | 
|---|
| 168 | typedef ENUM_SERVICE_STATUSW    ENUM_SERVICE_STATUS;
 | 
|---|
| 169 | typedef LPENUM_SERVICE_STATUSW  LPENUM_SERVICE_STATUS;
 | 
|---|
| 170 | typedef QUERY_SERVICE_CONFIGW   QUERY_SERVICE_CONFIG;
 | 
|---|
| 171 | typedef LPQUERY_SERVICE_CONFIGW LPQUERY_SERVICE_CONFIG;
 | 
|---|
| 172 | #else
 | 
|---|
| 173 | typedef ENUM_SERVICE_STATUSA    ENUM_SERVICE_STATUS;
 | 
|---|
| 174 | typedef LPENUM_SERVICE_STATUSA  LPENUM_SERVICE_STATUS;
 | 
|---|
| 175 | typedef QUERY_SERVICE_LOCK_STATUSA      QUERY_SERVICE_LOCK_STATUS;
 | 
|---|
| 176 | typedef LPQUERY_SERVICE_LOCK_STATUSA    LPQUERY_SERVICE_LOCK_STATUS;
 | 
|---|
| 177 | typedef QUERY_SERVICE_CONFIGA   QUERY_SERVICE_CONFIG;
 | 
|---|
| 178 | typedef LPQUERY_SERVICE_CONFIGA LPQUERY_SERVICE_CONFIG;
 | 
|---|
| 179 | #endif
 | 
|---|
| 180 | 
 | 
|---|
| 181 | HANDLE    WINAPI OpenSCManagerA(LPCSTR,LPCSTR,DWORD);
 | 
|---|
| 182 | HANDLE    WINAPI OpenSCManagerW(LPCWSTR,LPCWSTR,DWORD);
 | 
|---|
| 183 | #define     OpenSCManager WINELIB_NAME_AW(OpenSCManager)
 | 
|---|
| 184 | HANDLE    WINAPI OpenServiceA(SC_HANDLE,LPCSTR,DWORD);
 | 
|---|
| 185 | HANDLE    WINAPI OpenServiceW(SC_HANDLE,LPCWSTR,DWORD);
 | 
|---|
| 186 | #define     OpenService WINELIB_NAME_AW(OpenService)
 | 
|---|
| 187 | 
 | 
|---|
| 188 | BOOL      WINAPI CloseServiceHandle(SC_HANDLE);
 | 
|---|
| 189 | BOOL      WINAPI ControlService(SC_HANDLE,DWORD,LPSERVICE_STATUS);
 | 
|---|
| 190 | BOOL      WINAPI DeleteService(SC_HANDLE);
 | 
|---|
| 191 | 
 | 
|---|
| 192 | BOOL      WINAPI StartServiceA(SC_HANDLE,DWORD,LPCSTR*);
 | 
|---|
| 193 | BOOL      WINAPI StartServiceW(SC_HANDLE,DWORD,LPCWSTR*);
 | 
|---|
| 194 | #define     StartService WINELIB_NAME_AW(StartService)
 | 
|---|
| 195 | 
 | 
|---|
| 196 | 
 | 
|---|
| 197 | BOOL WINAPI QueryServiceConfigA(SC_HANDLE              schService,
 | 
|---|
| 198 |                                      LPQUERY_SERVICE_CONFIG lpqscServConfig,
 | 
|---|
| 199 |                                      DWORD                  cbBufSize,
 | 
|---|
| 200 |                                      LPDWORD                lpcbBytesNeeded);
 | 
|---|
| 201 | 
 | 
|---|
| 202 | BOOL WINAPI QueryServiceConfigW(SC_HANDLE              schService,
 | 
|---|
| 203 |                                      LPQUERY_SERVICE_CONFIG lpqscServConfig,
 | 
|---|
| 204 |                                      DWORD                  cbBufSize,
 | 
|---|
| 205 |                                      LPDWORD                lpcbBytesNeeded);
 | 
|---|
| 206 | 
 | 
|---|
| 207 | #define     QueryServiceConfig WINELIB_NAME_AW(QueryServiceConfig)
 | 
|---|
| 208 | 
 | 
|---|
| 209 | 
 | 
|---|
| 210 | BOOL WINAPI QueryServiceLockStatusA(SC_HANDLE                   schSCManager,
 | 
|---|
| 211 |                                          LPQUERY_SERVICE_LOCK_STATUSA lpqslsLockStat,
 | 
|---|
| 212 |                                          DWORD                       cbBufSize,
 | 
|---|
| 213 |                                          LPDWORD                     lpcbBytesNeeded);
 | 
|---|
| 214 | 
 | 
|---|
| 215 | BOOL WINAPI QueryServiceLockStatusW(SC_HANDLE                   schSCManager,
 | 
|---|
| 216 |                                          LPQUERY_SERVICE_LOCK_STATUSW lpqslsLockStat,
 | 
|---|
| 217 |                                          DWORD                       cbBufSize,
 | 
|---|
| 218 |                                          LPDWORD                     lpcbBytesNeeded);
 | 
|---|
| 219 | 
 | 
|---|
| 220 | #define     QueryServiceLockStatus WINELIB_NAME_AW(QueryServiceLockStatus)
 | 
|---|
| 221 | 
 | 
|---|
| 222 | BOOL WINAPI QueryServiceObjectSecurity(SC_HANDLE             schService,
 | 
|---|
| 223 |                                             SECURITY_INFORMATION  fdwSecurityInfo,
 | 
|---|
| 224 |                                             PSECURITY_DESCRIPTOR  psdSecurityDesc,
 | 
|---|
| 225 |                                             DWORD                 cbBufSize,
 | 
|---|
| 226 |                                             LPDWORD               lpcbBytesNeeded);
 | 
|---|
| 227 | 
 | 
|---|
| 228 | BOOL WINAPI QueryServiceStatus(SC_HANDLE         schService,
 | 
|---|
| 229 |                                  LPSERVICE_STATUS  lpssServiceStatus);
 | 
|---|
| 230 | 
 | 
|---|
| 231 | BOOL WINAPI SetServiceObjectSecurity(SC_HANDLE             schService,
 | 
|---|
| 232 |                                           SECURITY_INFORMATION  fdwSecurityInfo,
 | 
|---|
| 233 |                                           PSECURITY_DESCRIPTOR  psdSecurityDesc);
 | 
|---|
| 234 | 
 | 
|---|
| 235 | BOOL WINAPI ChangeServiceConfigA(SC_HANDLE hService,
 | 
|---|
| 236 |                                       DWORD     dwServiceType,
 | 
|---|
| 237 |                                       DWORD     dwStartType,
 | 
|---|
| 238 |                                       DWORD     dwErrorControl,
 | 
|---|
| 239 |                                       LPCSTR   lpBinaryPathName,
 | 
|---|
| 240 |                                       LPCSTR   lpLoadOrderGroup,
 | 
|---|
| 241 |                                       LPDWORD   lpdwTagId,
 | 
|---|
| 242 |                                       LPCSTR   lpDependencies,
 | 
|---|
| 243 |                                       LPCSTR   lpServiceStartName,
 | 
|---|
| 244 |                                       LPCSTR   lpPassword,
 | 
|---|
| 245 |                                       LPCSTR   lpDisplayName);
 | 
|---|
| 246 | 
 | 
|---|
| 247 | 
 | 
|---|
| 248 | BOOL WINAPI ChangeServiceConfigW(SC_HANDLE hService,
 | 
|---|
| 249 |                                       DWORD     dwServiceType,
 | 
|---|
| 250 |                                       DWORD     dwStartType,
 | 
|---|
| 251 |                                       DWORD     dwErrorControl,
 | 
|---|
| 252 |                                       LPCWSTR   lpBinaryPathName,
 | 
|---|
| 253 |                                       LPCWSTR   lpLoadOrderGroup,
 | 
|---|
| 254 |                                       LPDWORD   lpdwTagId,
 | 
|---|
| 255 |                                       LPCWSTR   lpDependencies,
 | 
|---|
| 256 |                                       LPCWSTR   lpServiceStartName,
 | 
|---|
| 257 |                                       LPCWSTR   lpPassword,
 | 
|---|
| 258 |                                       LPCWSTR   lpDisplayName);
 | 
|---|
| 259 | 
 | 
|---|
| 260 | #define     ChangeServiceConfig WINELIB_NAME_AW(ChangeServiceConfig)
 | 
|---|
| 261 | 
 | 
|---|
| 262 | SC_HANDLE WINAPI CreateServiceA(SC_HANDLE hSCManager,
 | 
|---|
| 263 |                                   LPCSTR    lpServiceName,
 | 
|---|
| 264 |                                   LPCSTR    lpDisplayName,
 | 
|---|
| 265 |                                   DWORD     dwDesiredAccess,
 | 
|---|
| 266 |                                   DWORD     dwServiceType,
 | 
|---|
| 267 |                                   DWORD     dwStartType,
 | 
|---|
| 268 |                                   DWORD     dwErrorControl,
 | 
|---|
| 269 |                                   LPCSTR    lpBinaryPathName,
 | 
|---|
| 270 |                                   LPCSTR    lpLoadOrderGroup,
 | 
|---|
| 271 |                                   LPDWORD   lpdwTagId,
 | 
|---|
| 272 |                                   LPCSTR    lpDependencies,
 | 
|---|
| 273 |                                   LPCSTR    lpServiceStartName,
 | 
|---|
| 274 |                                   LPCSTR    lpPassword);
 | 
|---|
| 275 | 
 | 
|---|
| 276 | SC_HANDLE WINAPI CreateServiceW(SC_HANDLE hSCManager,
 | 
|---|
| 277 |                                      LPCWSTR   lpServiceName,
 | 
|---|
| 278 |                                      LPCWSTR   lpDisplayName,
 | 
|---|
| 279 |                                      DWORD     dwDesiredAccess,
 | 
|---|
| 280 |                                      DWORD     dwServiceType,
 | 
|---|
| 281 |                                      DWORD     dwStartType,
 | 
|---|
| 282 |                                      DWORD     dwErrorControl,
 | 
|---|
| 283 |                                      LPCWSTR   lpBinaryPathName,
 | 
|---|
| 284 |                                      LPCWSTR   lpLoadOrderGroup,
 | 
|---|
| 285 |                                      LPDWORD   lpdwTagId,
 | 
|---|
| 286 |                                      LPCWSTR   lpDependencies,
 | 
|---|
| 287 |                                      LPCWSTR   lpServiceStartName,
 | 
|---|
| 288 |                                      LPCWSTR   lpPassword);
 | 
|---|
| 289 | 
 | 
|---|
| 290 | #define     CreateService WINELIB_NAME_AW(CreateService)
 | 
|---|
| 291 | 
 | 
|---|
| 292 | BOOL WINAPI GetServiceDisplayNameA(SC_HANDLE hSCManager,
 | 
|---|
| 293 |                                      LPCSTR    lpServiceName,
 | 
|---|
| 294 |                                      LPTSTR    lpDisplayName,
 | 
|---|
| 295 |                                      LPDWORD   lpcchBuffer);
 | 
|---|
| 296 | 
 | 
|---|
| 297 | BOOL WINAPI GetServiceDisplayNameW(SC_HANDLE hSCManager,
 | 
|---|
| 298 |                                      LPCWSTR   lpServiceName,
 | 
|---|
| 299 |                                      LPWSTR    lpDisplayName,
 | 
|---|
| 300 |                                      LPDWORD   lpcchBuffer);
 | 
|---|
| 301 | 
 | 
|---|
| 302 | #define     GetServiceDisplayName WINELIB_NAME_AW(GetServiceDisplayName)
 | 
|---|
| 303 | 
 | 
|---|
| 304 | BOOL WINAPI EnumDependentServicesA(SC_HANDLE             hService,
 | 
|---|
| 305 |                                         DWORD                 dwServiceState,
 | 
|---|
| 306 |                                         LPENUM_SERVICE_STATUSA lpServices,
 | 
|---|
| 307 |                                         DWORD                 cbBufSize,
 | 
|---|
| 308 |                                         LPDWORD               pcbBytesNeeded,
 | 
|---|
| 309 |                                         LPDWORD               lpServicesReturned);
 | 
|---|
| 310 | 
 | 
|---|
| 311 | BOOL WINAPI EnumDependentServicesW(SC_HANDLE             hService,
 | 
|---|
| 312 |                                         DWORD                 dwServiceState,
 | 
|---|
| 313 |                                         LPENUM_SERVICE_STATUSW lpServices,
 | 
|---|
| 314 |                                         DWORD                 cbBufSize,
 | 
|---|
| 315 |                                         LPDWORD               pcbBytesNeeded,
 | 
|---|
| 316 |                                         LPDWORD               lpServicesReturned);
 | 
|---|
| 317 | 
 | 
|---|
| 318 | #define     EnumDependentServices WINELIB_NAME_AW(EnumDependentServices)
 | 
|---|
| 319 | 
 | 
|---|
| 320 | BOOL WINAPI EnumServicesStatusA(SC_HANDLE             hSCManager,
 | 
|---|
| 321 |                                      DWORD                 dwServiceType,
 | 
|---|
| 322 |                                      DWORD                 dwServiceState,
 | 
|---|
| 323 |                                      LPENUM_SERVICE_STATUSA lpServices,
 | 
|---|
| 324 |                                      DWORD                 cbBufSize,
 | 
|---|
| 325 |                                      LPDWORD               pcbBytesNeeded,
 | 
|---|
| 326 |                                      LPDWORD               lpServicesReturned,
 | 
|---|
| 327 |                                      LPDWORD               lpResumeHandle);
 | 
|---|
| 328 | 
 | 
|---|
| 329 | BOOL WINAPI EnumServicesStatusW(SC_HANDLE             hSCManager,
 | 
|---|
| 330 |                                      DWORD                 dwServiceType,
 | 
|---|
| 331 |                                      DWORD                 dwServiceState,
 | 
|---|
| 332 |                                      LPENUM_SERVICE_STATUSW lpServices,
 | 
|---|
| 333 |                                      DWORD                 cbBufSize,
 | 
|---|
| 334 |                                      LPDWORD               pcbBytesNeeded,
 | 
|---|
| 335 |                                      LPDWORD               lpServicesReturned,
 | 
|---|
| 336 |                                      LPDWORD               lpResumeHandle);
 | 
|---|
| 337 | 
 | 
|---|
| 338 | #define     EnumServicesStatus WINELIB_NAME_AW(EnumServicesStatus)
 | 
|---|
| 339 | 
 | 
|---|
| 340 | BOOL WINAPI GetServiceKeyNameA(SC_HANDLE hSCManager,
 | 
|---|
| 341 |                                  LPCSTR    lpDisplayName,
 | 
|---|
| 342 |                                  LPTSTR    lpServiceName,
 | 
|---|
| 343 |                                  LPDWORD   lpcchBuffer);
 | 
|---|
| 344 | 
 | 
|---|
| 345 | BOOL WINAPI GetServiceKeyNameW(SC_HANDLE hSCManager,
 | 
|---|
| 346 |                                     LPCWSTR   lpDisplayName,
 | 
|---|
| 347 |                                     LPWSTR    lpServiceName,
 | 
|---|
| 348 |                                     LPDWORD   lpcchBuffer);
 | 
|---|
| 349 | 
 | 
|---|
| 350 | #define     GetServiceKeyName WINELIB_NAME_AW(GetServiceKeyName)
 | 
|---|
| 351 | 
 | 
|---|
| 352 | SC_LOCK WINAPI LockServiceDatabase(SC_HANDLE hSCManager);
 | 
|---|
| 353 | 
 | 
|---|
| 354 | BOOL WINAPI UnlockServiceDatabase(SC_LOCK sclLock);
 | 
|---|
| 355 | 
 | 
|---|
| 356 | #endif // __WINSVC_H__
 | 
|---|