Index: include/winsvc.h =================================================================== RCS file: /cvs/src/src/winsup/w32api/include/winsvc.h,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 winsvc.h --- winsvc.h 2000/02/17 19:38:32 1.1.1.1 +++ winsvc.h 2001/12/06 23:37:59 @@ -45,8 +45,9 @@ extern "C" { #define SERVICE_INTERROGATE 128 #define SERVICE_USER_DEFINED_CONTROL 256 #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) +#define SERVICE_CONFIG_DESCRIPTION 1 +#define SERVICE_CONFIG_FAILURE_ACTIONS 2 - typedef struct _SERVICE_STATUS { DWORD dwServiceType; DWORD dwCurrentState; @@ -113,9 +114,41 @@ typedef SC_HANDLE *LPSC_HANDLE; typedef PVOID SC_LOCK; typedef DWORD SERVICE_STATUS_HANDLE; typedef VOID(WINAPI *LPHANDLER_FUNCTION)(DWORD); +typedef struct _SERVICE_DESCRIPTIONA { + LPSTR lpDescription; +} SERVICE_DESCRIPTIONA,*LPSERVICE_DESCRIPTIONA; +typedef struct _SERVICE_DESCRIPTIONW { + LPWSTR lpDescription; +} SERVICE_DESCRIPTIONW,*LPSERVICE_DESCRIPTIONW; +typedef enum _SC_ACTION_TYPE { + SC_ACTION_NONE = 0, + SC_ACTION_RESTART = 1, + SC_ACTION_REBOOT = 2, + SC_ACTION_RUN_COMMAND = 3 +} SC_ACTION_TYPE; +typedef struct _SC_ACTION { + SC_ACTION_TYPE Type; + DWORD Delay; +} SC_ACTION,*LPSC_ACTION; +typedef struct _SERVICE_FAILURE_ACTIONSA { + DWORD dwResetPeriod; + LPSTR lpRebootMsg; + LPSTR lpCommand; + DWORD cActions; + SC_ACTION * lpsaActions; +} SERVICE_FAILURE_ACTIONSA,*LPSERVICE_FAILURE_ACTIONSA; +typedef struct _SERVICE_FAILURE_ACTIONSW { + DWORD dwResetPeriod; + LPWSTR lpRebootMsg; + LPWSTR lpCommand; + DWORD cActions; + SC_ACTION * lpsaActions; +} SERVICE_FAILURE_ACTIONSW,*LPSERVICE_FAILURE_ACTIONSW; BOOL WINAPI ChangeServiceConfigA(SC_HANDLE,DWORD,DWORD,DWORD,LPCSTR,LPCSTR,LPDWORD,LPCSTR,LPCSTR,LPCSTR,LPCSTR); BOOL WINAPI ChangeServiceConfigW(SC_HANDLE,DWORD,DWORD,DWORD,LPCWSTR,LPCWSTR,LPDWORD,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR); +BOOL WINAPI ChangeServiceConfig2A(SC_HANDLE,DWORD,LPVOID); +BOOL WINAPI ChangeServiceConfig2W(SC_HANDLE,DWORD,LPVOID); BOOL WINAPI CloseServiceHandle(SC_HANDLE); BOOL WINAPI ControlService(SC_HANDLE,DWORD,LPSERVICE_STATUS); SC_HANDLE WINAPI CreateServiceA(SC_HANDLE,LPCSTR,LPCSTR,DWORD,DWORD,DWORD,DWORD,LPCSTR,LPCSTR,PDWORD,LPCSTR,LPCSTR,LPCSTR); @@ -137,6 +170,8 @@ SC_HANDLE WINAPI OpenServiceA(SC_HANDLE, SC_HANDLE WINAPI OpenServiceW(SC_HANDLE,LPCWSTR,DWORD); BOOL WINAPI QueryServiceConfigA(SC_HANDLE,LPQUERY_SERVICE_CONFIGA,DWORD,PDWORD); BOOL WINAPI QueryServiceConfigW(SC_HANDLE,LPQUERY_SERVICE_CONFIGW,DWORD,PDWORD); +BOOL WINAPI QueryServiceConfig2A(SC_HANDLE,DWORD,LPBYTE,DWORD,LPDWORD); +BOOL WINAPI QueryServiceConfig2W(SC_HANDLE,DWORD,LPBYTE,DWORD,LPDWORD); BOOL WINAPI QueryServiceLockStatusA(SC_HANDLE,LPQUERY_SERVICE_LOCK_STATUSA,DWORD,PDWORD); BOOL WINAPI QueryServiceLockStatusW(SC_HANDLE,LPQUERY_SERVICE_LOCK_STATUSW,DWORD,PDWORD); BOOL WINAPI QueryServiceObjectSecurity(SC_HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD); @@ -157,10 +192,15 @@ typedef QUERY_SERVICE_CONFIGW QUERY_SERV typedef QUERY_SERVICE_LOCK_STATUSW QUERY_SERVICE_LOCK_STATUS,*LPQUERY_SERVICE_LOCK_STATUS; typedef SERVICE_TABLE_ENTRYW SERVICE_TABLE_ENTRY,*LPSERVICE_TABLE_ENTRY; typedef LPSERVICE_MAIN_FUNCTIONW LPSERVICE_MAIN_FUNCTION; +typedef SERVICE_DESCRIPTIONW SERVICE_DESCRIPTION; +typedef LPSERVICE_DESCRIPTIONW LPSERVICE_DESCRIPTION; +typedef SERVICE_FAILURE_ACTIONSW SERVICE_FAILURE_ACTIONS; +typedef LPSERVICE_FAILURE_ACTIONSW LPSERVICE_FAILURE_ACTIONS; #define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEW #define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEW #define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERW #define ChangeServiceConfig ChangeServiceConfigW +#define ChangeServiceConfig2 ChangeServiceConfig2W #define CreateService CreateServiceW #define EnumDependentServices EnumDependentServicesW #define EnumServicesStatus EnumServicesStatusW @@ -169,6 +209,7 @@ typedef LPSERVICE_MAIN_FUNCTIONW LPSERVI #define OpenSCManager OpenSCManagerW #define OpenService OpenServiceW #define QueryServiceConfig QueryServiceConfigW +#define QueryServiceConfig2 QueryServiceConfig2W #define QueryServiceLockStatus QueryServiceLockStatusW #define RegisterServiceCtrlHandler RegisterServiceCtrlHandlerW #define StartService StartServiceW @@ -179,10 +220,15 @@ typedef QUERY_SERVICE_CONFIGA QUERY_SERV typedef QUERY_SERVICE_LOCK_STATUSA QUERY_SERVICE_LOCK_STATUS,*LPQUERY_SERVICE_LOCK_STATUS; typedef SERVICE_TABLE_ENTRYA SERVICE_TABLE_ENTRY,*LPSERVICE_TABLE_ENTRY; typedef LPSERVICE_MAIN_FUNCTIONA LPSERVICE_MAIN_FUNCTION; +typedef SERVICE_DESCRIPTIONA SERVICE_DESCRIPTION; +typedef LPSERVICE_DESCRIPTIONA LPSERVICE_DESCRIPTION; +typedef SERVICE_FAILURE_ACTIONSA SERVICE_FAILURE_ACTIONS; +typedef LPSERVICE_FAILURE_ACTIONSA LPSERVICE_FAILURE_ACTIONS; #define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEA #define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEA #define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERA #define ChangeServiceConfig ChangeServiceConfigA +#define ChangeServiceConfig2 ChangeServiceConfig2A #define CreateService CreateServiceA #define EnumDependentServices EnumDependentServicesA #define EnumServicesStatus EnumServicesStatusA @@ -191,6 +237,7 @@ typedef LPSERVICE_MAIN_FUNCTIONA LPSERVI #define OpenSCManager OpenSCManagerA #define OpenService OpenServiceA #define QueryServiceConfig QueryServiceConfigA +#define QueryServiceConfig2 QueryServiceConfig2A #define QueryServiceLockStatus QueryServiceLockStatusA #define RegisterServiceCtrlHandler RegisterServiceCtrlHandlerA #define StartService StartServiceA