#include <ndk/ntndk.h>
#include <services/services.h>
+
+typedef struct _SERVICE_GROUP
+{
+ LIST_ENTRY GroupListEntry;
+ LPWSTR lpGroupName;
+
+ DWORD dwRefCount;
+ BOOLEAN ServicesRunning;
+ ULONG TagCount;
+ PULONG TagArray;
+
+ WCHAR szGroupName[1];
+} SERVICE_GROUP, *PSERVICE_GROUP;
+
+
typedef struct _SERVICE
{
LIST_ENTRY ServiceListEntry;
LPWSTR lpDisplayName;
LPWSTR lpServiceGroup;
BOOL bDeleted;
+ DWORD dwResumeCount;
SERVICE_STATUS Status;
DWORD dwStartType;
ULONG Flags;
+ PSECURITY_DESCRIPTOR lpSecurityDescriptor;
+
BOOLEAN ServiceVisited;
HANDLE ControlPipeHandle;
/* VARIABLES ***************************************************************/
+extern LIST_ENTRY ServiceListHead;
+extern LIST_ENTRY GroupListHead;
extern BOOL ScmShutdown;
PSERVICE ScmGetServiceEntryByName(LPWSTR lpServiceName);
PSERVICE ScmGetServiceEntryByDisplayName(LPWSTR lpDisplayName);
+PSERVICE ScmGetServiceEntryByResumeCount(DWORD dwResumeCount);
DWORD ScmCreateNewServiceRecord(LPWSTR lpServiceName,
PSERVICE *lpServiceRecord);
DWORD ScmMarkServiceForDelete(PSERVICE pService);
LPSERVICE_STATUS lpServiceStatus);
+/* groupdb.c */
+
+DWORD ScmCreateGroupList(VOID);
+
+
/* rpcserver.c */
VOID ScmStartRpcServer(VOID);