#include "librpc/gen_ndr/ndr_svcctl.h" #ifndef __SRV_SVCCTL__ #define __SRV_SVCCTL__ WERROR _svcctl_CloseServiceHandle(pipes_struct *p, struct policy_handle *handle); WERROR _svcctl_ControlService(pipes_struct *p, struct policy_handle *handle, uint32_t control, struct SERVICE_STATUS *status); WERROR _svcctl_DeleteService(pipes_struct *p, struct policy_handle *handle); WERROR _svcctl_LockServiceDatabase(pipes_struct *p, struct policy_handle *handle, struct policy_handle *lock); WERROR _svcctl_QueryServiceObjectSecurity(pipes_struct *p); WERROR _svcctl_SetServiceObjectSecurity(pipes_struct *p); WERROR _svcctl_QueryServiceStatus(pipes_struct *p, struct policy_handle *handle, struct SERVICE_STATUS *status); WERROR _svcctl_SetServiceStatus(pipes_struct *p); WERROR _svcctl_UnlockServiceDatabase(pipes_struct *p, struct policy_handle *lock); WERROR _svcctl_NotifyBootConfigStatus(pipes_struct *p); WERROR _svcctl_SCSetServiceBitsW(pipes_struct *p, struct policy_handle *handle, uint32_t bits, uint32_t bitson, uint32_t immediate); WERROR _svcctl_ChangeServiceConfigW(pipes_struct *p, struct policy_handle *handle, uint32_t type, uint32_t start, uint32_t error, const char *binary_path, const char *load_order_group, uint32_t *tag_id, const char *dependencies, const char *service_start_name, const char *password, const char *display_name); WERROR _svcctl_CreateServiceW(pipes_struct *p, struct policy_handle *scmanager_handle, const char *ServiceName, const char *DisplayName, uint32_t desired_access, uint32_t type, uint32_t start_type, uint32_t error_control, const char *binary_path, const char *LoadOrderGroupKey, uint32_t *TagId, uint8_t *dependencies, uint32_t dependencies_size, const char *service_start_name, uint8_t *password, uint32_t password_size, struct policy_handle *handle); WERROR _svcctl_EnumDependentServicesW(pipes_struct *p, struct policy_handle *service, uint32_t state, struct ENUM_SERVICE_STATUS *status, uint32_t buf_size, uint32_t *bytes_needed, uint32_t *services_returned); WERROR _svcctl_EnumServicesStatusW(pipes_struct *p, struct policy_handle *handle, uint32_t type, uint32_t state, uint32_t buf_size, uint8_t *service, uint32_t *bytes_needed, uint32_t *services_returned, uint32_t *resume_handle); WERROR _svcctl_OpenSCManagerW(pipes_struct *p, const char *MachineName, const char *DatabaseName, uint32_t access_mask, struct policy_handle *handle); WERROR _svcctl_OpenServiceW(pipes_struct *p, struct policy_handle *scmanager_handle, const char *ServiceName, uint32_t access_mask, struct policy_handle *handle); WERROR _svcctl_QueryServiceConfigW(pipes_struct *p, struct policy_handle *handle, uint8_t *query, uint32_t buf_size, uint32_t *bytes_needed); WERROR _svcctl_QueryServiceLockStatusW(pipes_struct *p, struct policy_handle *handle, uint32_t buf_size, struct SERVICE_LOCK_STATUS *status, uint32_t *required_buf_size); WERROR _svcctl_StartServiceW(pipes_struct *p, struct policy_handle *handle, uint32_t NumArgs, const char *Arguments); WERROR _svcctl_GetServiceDisplayNameW(pipes_struct *p, struct policy_handle *handle, const char *service_name, const char **display_name, uint32_t *display_name_length); WERROR _svcctl_GetServiceKeyNameW(pipes_struct *p, struct policy_handle *handle, const char *service_name, const char **key_name, uint32_t *display_name_length); WERROR _svcctl_SCSetServiceBitsA(pipes_struct *p, struct policy_handle *handle, uint32_t bits, uint32_t bitson, uint32_t immediate); WERROR _svcctl_ChangeServiceConfigA(pipes_struct *p, struct policy_handle *handle, uint32_t type, uint32_t start, uint32_t error, const char *binary_path, const char *load_order_group, uint32_t *tag_id, const char *dependencies, const char *service_start_name, const char *password, const char *display_name); WERROR _svcctl_CreateServiceA(pipes_struct *p, struct policy_handle *handle, const char *ServiceName, const char *DisplayName, uint32_t desired_access, uint32_t type, uint32_t start_type, uint32_t error_control, const char *binary_path, const char *LoadOrderGroupKey, uint32_t *TagId, const char *dependencies, const char *service_start_name, const char *password); WERROR _svcctl_EnumDependentServicesA(pipes_struct *p, struct policy_handle *service, uint32_t state, struct ENUM_SERVICE_STATUS *status, uint32_t buf_size, uint32_t *bytes_needed, uint32_t *services_returned); WERROR _svcctl_EnumServicesStatusA(pipes_struct *p, struct policy_handle *handle, uint32_t type, uint32_t state, uint32_t buf_size, uint8_t *service, uint32_t *bytes_needed, uint32_t *services_returned, uint32_t *resume_handle); WERROR _svcctl_OpenSCManagerA(pipes_struct *p, const char *MachineName, const char *DatabaseName, uint32_t access_mask, struct policy_handle *handle); WERROR _svcctl_OpenServiceA(pipes_struct *p, struct policy_handle *scmanager_handle, const char *ServiceName, uint32_t access_mask); WERROR _svcctl_QueryServiceConfigA(pipes_struct *p, struct policy_handle *handle, uint8_t *query, uint32_t buf_size, uint32_t *bytes_needed); WERROR _svcctl_QueryServiceLockStatusA(pipes_struct *p, struct policy_handle *handle, uint32_t buf_size, struct SERVICE_LOCK_STATUS *status, uint32_t *required_buf_size); WERROR _svcctl_StartServiceA(pipes_struct *p, struct policy_handle *handle, uint32_t NumArgs, const char *Arguments); WERROR _svcctl_GetServiceDisplayNameA(pipes_struct *p, struct policy_handle *handle, const char *service_name, const char **display_name, uint32_t *display_name_length); WERROR _svcctl_GetServiceKeyNameA(pipes_struct *p, struct policy_handle *handle, const char *service_name, const char **key_name, uint32_t *display_name_length); WERROR _svcctl_GetCurrentGroupeStateW(pipes_struct *p); WERROR _svcctl_EnumServiceGroupW(pipes_struct *p); WERROR _svcctl_ChangeServiceConfig2A(pipes_struct *p, struct policy_handle *handle, uint32_t info_level, uint8_t *info); WERROR _svcctl_ChangeServiceConfig2W(pipes_struct *p, struct policy_handle *handle, uint32_t info_level, uint8_t *info); WERROR _svcctl_QueryServiceConfig2A(pipes_struct *p, struct policy_handle *handle, uint32_t info_level, uint8_t *buffer, uint32_t buf_size, uint32_t *bytes_needed); WERROR _svcctl_QueryServiceConfig2W(pipes_struct *p, struct policy_handle *handle, uint32_t info_level, uint8_t *buffer, uint32_t buf_size, uint32_t *bytes_needed); WERROR _svcctl_QueryServiceStatusEx(pipes_struct *p, struct policy_handle *handle, uint32_t info_level, uint8_t *buffer, uint32_t buf_size, uint32_t *bytes_needed); WERROR _EnumServicesStatusExA(pipes_struct *p, struct policy_handle *scmanager, uint32_t info_level, uint32_t type, uint32_t state, uint8_t *services, uint32_t buf_size, uint32_t *bytes_needed, uint32_t *service_returned, uint32_t *resume_handle, const char **group_name); WERROR _EnumServicesStatusExW(pipes_struct *p, struct policy_handle *scmanager, uint32_t info_level, uint32_t type, uint32_t state, uint8_t *services, uint32_t buf_size, uint32_t *bytes_needed, uint32_t *service_returned, uint32_t *resume_handle, const char **group_name); WERROR _svcctl_SCSendTSMessage(pipes_struct *p); void svcctl_get_pipe_fns(struct api_struct **fns, int *n_fns); NTSTATUS rpc_svcctl_init(void); #endif /* __SRV_SVCCTL__ */