Likewise Service Manager
lwsm.h File Reference

Likewise Service Manager API. More...

#include <lw/base.h>
#include <lwdef.h>

Data Structures

struct  PLW_SERVICE_INFO
 Service information. More...
 
struct  PLW_SERVICE_STATUS
 Service status. More...
 

Typedefs

typedef struct _LW_SERVICE_HANDLE * LW_SERVICE_HANDLE
 Opaque service handle. More...
 

Enumerations

enum  LW_SM_LOG_LEVEL {
  LW_SM_LOG_LEVEL_DEFAULT,
  LW_SM_LOG_LEVEL_ALWAYS,
  LW_SM_LOG_LEVEL_ERROR,
  LW_SM_LOG_LEVEL_WARNING,
  LW_SM_LOG_LEVEL_INFO,
  LW_SM_LOG_LEVEL_VERBOSE,
  LW_SM_LOG_LEVEL_DEBUG,
  LW_SM_LOG_LEVEL_TRACE
}
 Log level. More...
 
enum  LW_SM_LOGGER_TYPE {
  LW_SM_LOGGER_DEFAULT,
  LW_SM_LOGGER_NONE,
  LW_SM_LOGGER_FILE,
  LW_SM_LOGGER_SYSLOG
}
 Logger type. More...
 
enum  LW_SERVICE_STATE {
  LW_SERVICE_STATE_RUNNING,
  LW_SERVICE_STATE_STOPPED,
  LW_SERVICE_STATE_STARTING,
  LW_SERVICE_STATE_STOPPING,
  LW_SERVICE_STATE_PAUSED,
  LW_SERVICE_STATE_DEAD
}
 State of a service. More...
 
enum  LW_SERVICE_TYPE {
  LW_SERVICE_TYPE_LEGACY_EXECUTABLE,
  LW_SERVICE_TYPE_EXECUTABLE,
  LW_SERVICE_TYPE_MODULE,
  LW_SERVICE_TYPE_DRIVER,
  LW_SERVICE_TYPE_STUB
}
 Service type. More...
 
enum  LW_SERVICE_HOME {
  LW_SERVICE_HOME_STANDALONE,
  LW_SERVICE_HOME_CONTAINER,
  LW_SERVICE_HOME_IO_MANAGER,
  LW_SERVICE_HOME_SERVICE_MANAGER
}
 Service home. More...
 
enum  LW_SERVICE_INFO_MASK {
  LW_SERVICE_INFO_MASK_NAME,
  LW_SERVICE_INFO_MASK_DESCRIPTION,
  LW_SERVICE_INFO_MASK_TYPE,
  LW_SERVICE_INFO_MASK_PATH,
  LW_SERVICE_INFO_MASK_ARGS,
  LW_SERVICE_INFO_MASK_ENVIRONMENT,
  LW_SERVICE_INFO_MASK_DEPENDENCIES,
  LW_SERVICE_INFO_MASK_AUTOSTART,
  LW_SERVICE_INFO_MASK_FD_LIMIT,
  LW_SERVICE_INFO_MASK_GROUP,
  LW_SERVICE_INFO_MASK_LOG = 0x400,
  LW_SERVICE_INFO_MASK_ALL
}
 Service info mask. More...
 
enum  LW_SM_GLOBAL_SETTING {
  LW_SM_GLOBAL_SETTING_NONE,
  LW_SM_GLOBAL_SETTING_WATCHDOG
}
 

Functions

DWORD LwSmAcquireServiceHandle (LW_PCWSTR pwszServiceName, PLW_SERVICE_HANDLE phHandle)
 Acquire service handle. More...
 
DWORD LwSmReleaseServiceHandle (LW_SERVICE_HANDLE hHandle)
 Release a service handle. More...
 
DWORD LwSmEnumerateServices (PWSTR **pppwszServiceNames)
 Enumerate available services. More...
 
VOID LwSmFreeServiceNameList (PWSTR *ppwszServiceNames)
 Free service name list. More...
 
DWORD LwSmAddService (PCLW_SERVICE_INFO pServiceInfo, PLW_SERVICE_HANDLE phHandle)
 Add new service. More...
 
DWORD LwSmRemoveService (LW_SERVICE_HANDLE hHandle)
 Remove an existing service. More...
 
DWORD LwSmUpdateServiceInfo (LW_SERVICE_HANDLE hHandle, PCLW_SERVICE_INFO pServiceInfo, LW_SERVICE_INFO_MASK mask)
 Update service information. More...
 
DWORD LwSmStartService (LW_SERVICE_HANDLE hHandle)
 Start a service. More...
 
DWORD LwSmStopService (LW_SERVICE_HANDLE hHandle)
 Stop a service. More...
 
DWORD LwSmQueryServiceStatus (LW_SERVICE_HANDLE hHandle, PLW_SERVICE_STATUS pStatus)
 Get service status. More...
 
DWORD LwSmWaitService (LW_SERVICE_HANDLE hHandle, LW_SERVICE_STATE currentState, PLW_SERVICE_STATE pNewState)
 Wait for service state change. More...
 
DWORD LwSmRefreshService (LW_SERVICE_HANDLE hHandle)
 Refresh service. More...
 
DWORD LwSmSetServiceLogTarget (LW_SERVICE_HANDLE hHandle, LW_PCSTR pFacility, LW_SM_LOGGER_TYPE type, PCSTR pTarget)
 Sets log target for a service. More...
 
DWORD LwSmSetServiceLogLevel (LW_SERVICE_HANDLE hHandle, LW_PCSTR pFacility, LW_SM_LOG_LEVEL level)
 Set maximum log level for a service. More...
 
DWORD LwSmGetServiceLogState (LW_SERVICE_HANDLE hHandle, LW_PCSTR pFacility, PLW_SM_LOGGER_TYPE pType, LW_PSTR *ppTarget, PLW_SM_LOG_LEVEL pLevel)
 Get current logging state for a service. More...
 
VOID LwSmFreeLogTarget (LW_PSTR pTarget)
 Free logging target. More...
 
DWORD LwSmEnumerateServiceLogFacilities (LW_SERVICE_HANDLE hHandle, LW_PWSTR **pppFacilities)
 Enumerate logging facilities for a service. More...
 
VOID LwSmFreeLogFacilityList (LW_PWSTR *ppFacilities)
 Free log facility list. More...
 
DWORD LwSmQueryServiceInfo (LW_SERVICE_HANDLE hHandle, PLW_SERVICE_INFO *ppInfo)
 Get service info. More...
 
DWORD LwSmQueryServiceDependencyClosure (LW_SERVICE_HANDLE hHandle, PWSTR **pppwszServiceList)
 Get recursive dependency list. More...
 
DWORD LwSmQueryServiceReverseDependencyClosure (LW_SERVICE_HANDLE hHandle, PWSTR **pppwszServiceList)
 Get recursive reverse dependency list. More...
 
VOID LwSmFreeServiceInfo (PLW_SERVICE_INFO pInfo)
 Free service info structure. More...
 
DWORD LwSmRefresh (VOID)
 Refresh service manager. More...
 
DWORD LwSmShutdown (VOID)
 Shutdown. More...
 
DWORD LwSmSetGlobal (LW_IN LW_SM_GLOBAL_SETTING Setting,...)
 Change global setting. More...
 
DWORD LwSmGetGlobal (LW_IN LW_SM_GLOBAL_SETTING Setting,...)
 Get global setting. More...
 
VOID LwSmFreeGlobal (LW_IN LW_SM_GLOBAL_SETTING Setting,...)
 Free global setting value. More...