X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=service.h;h=515b10802948cfa1ab615a1a1ca996173462c5d8;hb=4b7c8eec508cc90d80355fad5df80163a181ddcb;hp=596b82b502dde81230b3647b82ba35316aafc913;hpb=b6cfe6e22a89192c1bdcf234f17a72fd9993d570;p=nssm.git diff --git a/service.h b/service.h index 596b82b..515b108 100644 --- a/service.h +++ b/service.h @@ -20,6 +20,13 @@ #define ACTION_LEN 16 #define NSSM_LOCALSYSTEM_ACCOUNT _T("LocalSystem") +#define NSSM_KERNEL_DRIVER _T("SERVICE_KERNEL_DRIVER") +#define NSSM_FILE_SYSTEM_DRIVER _T("SERVICE_FILE_SYSTEM_DRIVER") +#define NSSM_WIN32_OWN_PROCESS _T("SERVICE_WIN32_OWN_PROCESS") +#define NSSM_WIN32_SHARE_PROCESS _T("SERVICE_WIN32_SHARE_PROCESS") +#define NSSM_INTERACTIVE_PROCESS _T("SERVICE_INTERACTIVE_PROCESS") +#define NSSM_SHARE_INTERACTIVE_PROCESS NSSM_WIN32_SHARE_PROCESS _T("|") NSSM_INTERACTIVE_PROCESS +#define NSSM_UNKNOWN _T("?") typedef struct { bool native; @@ -90,6 +97,11 @@ void set_nssm_service_defaults(nssm_service_t *); void cleanup_nssm_service(nssm_service_t *); SC_HANDLE open_service_manager(); QUERY_SERVICE_CONFIG *query_service_config(const TCHAR *, SC_HANDLE); +int set_service_description(const TCHAR *, SC_HANDLE, TCHAR *); +int get_service_description(const TCHAR *, SC_HANDLE, unsigned long, TCHAR *); +int get_service_startup(const TCHAR *, SC_HANDLE, const QUERY_SERVICE_CONFIG *, unsigned long *); +int get_service_username(const TCHAR *, const QUERY_SERVICE_CONFIG *, TCHAR **, size_t *); +int grant_logon_as_service(const TCHAR *); int pre_install_service(int, TCHAR **); int pre_remove_service(int, TCHAR **); int pre_edit_service(int, TCHAR **);