Likewise Base Runtime Library
svcm.h File Reference

Service module API. More...

#include <lw/attrs.h>
#include <lw/types.h>

Data Structures

struct  PLW_SVCM_MODULE
 Service module function table. More...
 

Macros

#define LW_RTL_SVCM_ENTRY_POINT_NAME(name)
 Service module entry point name. More...
 

Typedefs

typedef struct _LW_SVCM_INSTANCE LW_SVCM_INSTANCE
 Service instance. More...
 
typedef struct _LW_SVCM_INSTANCE * PLW_SVCM_INSTANCE
 
typedef LW_NTSTATUS(* LW_SVCM_INIT_FUNCTION )(LW_IN LW_PCWSTR pServiceName, LW_IN LW_OUT PLW_SVCM_INSTANCE pInstance)
 Service init function. More...
 
typedef LW_NTSTATUS(* LW_SVCM_COMMAND_FUNCTION )(LW_IN PLW_SVCM_INSTANCE pInstance)
 Generic service command function. More...
 
typedef LW_NTSTATUS(* LW_SVCM_START_FUNCTION )(LW_IN PLW_SVCM_INSTANCE pInstance, LW_IN LW_ULONG ArgCount, LW_IN LW_PWSTR *ppArgs, LW_IN LW_ULONG FdCount, LW_IN int *pFds)
 Service start function. More...
 
typedef VOID(* LW_SVCM_DESTROY_FUNCTION )(LW_IN LW_OUT PLW_SVCM_INSTANCE pInstance)
 Service destroy function. More...
 
typedef PLW_SVCM_MODULE(* LW_SVCM_MODULE_ENTRY_FUNCTION )(LW_VOID)
 Service module entry point. More...
 
typedef VOID(* LW_SVCM_NOTIFY_FUNCTION )(LW_IN PLW_SVCM_INSTANCE pInstance, LW_IN LW_NTSTATUS Status, LW_IN LW_PVOID pContext)
 Service command completion function. More...
 

Functions

VOID LwRtlSvcmSetData (LW_IN LW_OUT PLW_SVCM_INSTANCE pInstance, LW_IN LW_PVOID pData)
 Set arbitrary data on service instance. More...
 
PVOID LwRtlSvcmGetData (PLW_SVCM_INSTANCE pInstance)
 Get arbitrary data on service instance. More...
 
LW_NTSTATUS LwRtlSvcmLoadModule (LW_IN LW_PCWSTR pServiceName, LW_IN LW_PCWSTR pModulePath, LW_OUT PLW_SVCM_INSTANCE *ppInstance)
 Load a service module. More...
 
LW_NTSTATUS LwRtlSvcmLoadEmbedded (LW_IN LW_PCWSTR pServiceName, LW_IN LW_SVCM_MODULE_ENTRY_FUNCTION Entry, LW_OUT PLW_SVCM_INSTANCE *ppInstance)
 Load an embedded service. More...
 
LW_NTSTATUS LwRtlSvcmStart (LW_IN PLW_SVCM_INSTANCE pInstance, LW_IN LW_ULONG ArgCount, LW_IN LW_PWSTR *ppArgs, LW_IN LW_ULONG FdCount, LW_IN int *pFds, LW_IN LW_OPTIONAL LW_SVCM_NOTIFY_FUNCTION Notify, LW_IN LW_OPTIONAL LW_PVOID pContext)
 Start a service. More...
 
LW_NTSTATUS LwRtlSvcmStop (LW_IN PLW_SVCM_INSTANCE pInstance, LW_IN LW_OPTIONAL LW_SVCM_NOTIFY_FUNCTION Notify, LW_IN LW_OPTIONAL LW_PVOID pContext)
 Stop a service. More...
 
LW_NTSTATUS LwRtlSvcmRefresh (LW_IN PLW_SVCM_INSTANCE pInstance, LW_IN LW_OPTIONAL LW_SVCM_NOTIFY_FUNCTION Notify, LW_IN LW_OPTIONAL LW_PVOID pContext)
 Refresh service configuration. More...
 
VOID LwRtlSvcmUnload (LW_IN LW_OUT PLW_SVCM_INSTANCE pInstance)
 Unload a service. More...
 
VOID LwRtlSvcmFreePool (VOID)