Move group-list related code to a separate file and keep the group name in the group...
[reactos.git] / reactos / subsys / system / services / services.h
index 997ec6a..31f739c 100644 (file)
@@ -9,6 +9,21 @@
 #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;
@@ -16,6 +31,7 @@ typedef struct _SERVICE
     LPWSTR lpDisplayName;
     LPWSTR lpServiceGroup;
     BOOL bDeleted;
+    DWORD dwResumeCount;
 
     SERVICE_STATUS Status;
     DWORD dwStartType;
@@ -24,6 +40,8 @@ typedef struct _SERVICE
 
     ULONG Flags;
 
+    PSECURITY_DESCRIPTOR lpSecurityDescriptor;
+
     BOOLEAN ServiceVisited;
 
     HANDLE ControlPipeHandle;
@@ -36,6 +54,8 @@ typedef struct _SERVICE
 
 /* VARIABLES ***************************************************************/
 
+extern LIST_ENTRY ServiceListHead;
+extern LIST_ENTRY GroupListHead;
 extern BOOL ScmShutdown;
 
 
@@ -71,6 +91,7 @@ VOID ScmAutoStartServices(VOID);
 
 PSERVICE ScmGetServiceEntryByName(LPWSTR lpServiceName);
 PSERVICE ScmGetServiceEntryByDisplayName(LPWSTR lpDisplayName);
+PSERVICE ScmGetServiceEntryByResumeCount(DWORD dwResumeCount);
 DWORD ScmCreateNewServiceRecord(LPWSTR lpServiceName,
                                 PSERVICE *lpServiceRecord);
 DWORD ScmMarkServiceForDelete(PSERVICE pService);
@@ -85,6 +106,11 @@ DWORD ScmControlDriver(PSERVICE lpService,
                        LPSERVICE_STATUS lpServiceStatus);
 
 
+/* groupdb.c */
+
+DWORD ScmCreateGroupList(VOID);
+
+
 /* rpcserver.c */
 
 VOID ScmStartRpcServer(VOID);