--- mstools/h/winsvc.h 2018/08/09 18:20:34 1.1.1.1 +++ mstools/h/winsvc.h 2018/08/09 18:21:13 1.1.1.2 @@ -41,18 +41,30 @@ Revision History: #define SERVICES_ACTIVE_DATABASEA "ServicesActive" #define SERVICES_FAILED_DATABASEA "ServicesFailed" +// +// Character to designate that a name is a group +// + +#define SC_GROUP_IDENTIFIERW L'+' +#define SC_GROUP_IDENTIFIERA '+' + #ifdef UNICODE #define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEW #define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEW + +#define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERW + #else // ndef UNICODE #define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEA #define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEA +#define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERA #endif // ndef UNICODE + // // Value to indicate no change to an optional parameter // @@ -73,6 +85,7 @@ Revision History: #define SERVICE_CONTROL_PAUSE 0x00000002 #define SERVICE_CONTROL_CONTINUE 0x00000003 #define SERVICE_CONTROL_INTERROGATE 0x00000004 +#define SERVICE_CONTROL_SHUTDOWN 0x00000005 // // Service State -- for CurrentState @@ -90,6 +103,7 @@ Revision History: // #define SERVICE_ACCEPT_STOP 0x00000001 #define SERVICE_ACCEPT_PAUSE_CONTINUE 0x00000002 +#define SERVICE_ACCEPT_SHUTDOWN 0x00000004 // // Service Control Manager object specific access types @@ -122,6 +136,7 @@ Revision History: #define SERVICE_STOP 0x0020 #define SERVICE_PAUSE_CONTINUE 0x0040 #define SERVICE_INTERROGATE 0x0080 +#define SERVICE_USER_DEFINED_CONTROL 0x0100 #define SERVICE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | \ SERVICE_QUERY_CONFIG | \ @@ -131,7 +146,8 @@ Revision History: SERVICE_START | \ SERVICE_STOP | \ SERVICE_PAUSE_CONTINUE | \ - SERVICE_INTERROGATE) + SERVICE_INTERROGATE | \ + SERVICE_USER_DEFINED_CONTROL) // @@ -216,6 +232,7 @@ typedef struct _QUERY_SERVICE_CONFIGA { DWORD dwErrorControl; LPSTR lpBinaryPathName; LPSTR lpLoadOrderGroup; + DWORD dwTagId; LPSTR lpDependencies; LPSTR lpServiceStartName; } QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA; @@ -225,6 +242,7 @@ typedef struct _QUERY_SERVICE_CONFIGW { DWORD dwErrorControl; LPWSTR lpBinaryPathName; LPWSTR lpLoadOrderGroup; + DWORD dwTagId; LPWSTR lpDependencies; LPWSTR lpServiceStartName; } QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW; @@ -302,6 +320,7 @@ ChangeServiceConfigA( DWORD dwErrorControl, LPCSTR lpBinaryPathName, LPCSTR lpLoadOrderGroup, + LPDWORD lpdwTagId, LPCSTR lpDependencies, LPCSTR lpServiceStartName, LPCSTR lpPassword @@ -315,6 +334,7 @@ ChangeServiceConfigW( DWORD dwErrorControl, LPCWSTR lpBinaryPathName, LPCWSTR lpLoadOrderGroup, + LPDWORD lpdwTagId, LPCWSTR lpDependencies, LPCWSTR lpServiceStartName, LPCWSTR lpPassword @@ -350,6 +370,7 @@ CreateServiceA( DWORD dwErrorControl, LPCSTR lpBinaryPathName, LPCSTR lpLoadOrderGroup, + LPDWORD lpdwTagId, LPCSTR lpDependencies, LPCSTR lpServiceStartName, LPCSTR lpPassword @@ -365,6 +386,7 @@ CreateServiceW( DWORD dwErrorControl, LPCWSTR lpBinaryPathName, LPCWSTR lpLoadOrderGroup, + LPDWORD lpdwTagId, LPCWSTR lpDependencies, LPCWSTR lpServiceStartName, LPCWSTR lpPassword