#define SERVICE_ALL_ACCESS \
( STANDARD_RIGHTS_REQUIRED_ACCESS | \
SERVICE_READ_ACCESS | \
- SERVICE_EXECUTE_ACCESS )
+ SERVICE_EXECUTE_ACCESS | \
+ SC_RIGHT_SVC_CHANGE_CONFIG )
typedef struct {
/* functions for enumerating subkeys and values */
- WERROR (*stop_service)( void );
+ WERROR (*stop_service)( SERVICE_STATUS *status );
WERROR (*start_service) ( void );
WERROR (*service_status)( SERVICE_STATUS *status );
} SERVICE_CONTROL_OPS;
if ( !(info->access_granted & SC_RIGHT_SVC_START) )
return WERR_ACCESS_DENIED;
+ return info->ops->start_service();
+
return WERR_OK;
}
if ( !(info->access_granted & SC_RIGHT_SVC_STOP) )
return WERR_ACCESS_DENIED;
+ return info->ops->stop_service( &r_u->svc_status );
+
#if 0
SERVICE_INFO *service_info;
POLICY_HND *handle;
DEBUG(10, ("_svcctl_query_service_config: Should call the commFound service [%s], [%s]\n",service_info->servicename,service_info->filename));
#endif
-
- return WERR_OK;
}
/********************************************************************
/*********************************************************************
*********************************************************************/
-static WERROR rcinit_stop( void )
+static WERROR rcinit_stop( SERVICE_STATUS *service_status )
{
return WERR_OK;
}
/*********************************************************************
*********************************************************************/
-static WERROR spoolss_stop( void )
+static WERROR spoolss_stop( SERVICE_STATUS *service_status )
{
return WERR_OK;
}