2e65d89027415355112d2f8622175db774220c26
[reactos.git] / reactos / subsys / system / services / services.h
1 /*
2 * services.h
3 */
4
5 #include <stdio.h>
6 #define WIN32_NO_STATUS
7 #include <windows.h>
8 #define NTOS_MODE_USER
9 #include <ndk/ntndk.h>
10 #include <services/services.h>
11
12 typedef struct _SERVICE
13 {
14 LIST_ENTRY ServiceListEntry;
15 LPWSTR lpServiceName;
16 LPWSTR lpDisplayName;
17 UNICODE_STRING ServiceGroup;
18 BOOL bDeleted;
19
20 SERVICE_STATUS Status;
21 DWORD dwStartType;
22 DWORD dwErrorControl;
23 DWORD dwTag;
24
25 ULONG Flags;
26
27 BOOLEAN ServiceVisited;
28
29 HANDLE ControlPipeHandle;
30 ULONG ProcessId;
31 ULONG ThreadId;
32
33 WCHAR szServiceName[1];
34 } SERVICE, *PSERVICE;
35
36
37 /* VARIABLES ***************************************************************/
38
39 extern BOOL ScmShutdown;
40
41
42 /* FUNCTIONS ***************************************************************/
43
44 /* config.c */
45
46 DWORD ScmWriteDependencies(HKEY hServiceKey,
47 LPWSTR lpDependencies,
48 DWORD dwDependenciesLength);
49
50
51 /* database.c */
52
53 NTSTATUS ScmCreateServiceDataBase(VOID);
54 VOID ScmGetBootAndSystemDriverState(VOID);
55 VOID ScmAutoStartServices(VOID);
56
57 PSERVICE ScmGetServiceEntryByName(LPWSTR lpServiceName);
58 PSERVICE ScmGetServiceEntryByDisplayName(LPWSTR lpDisplayName);
59 DWORD ScmCreateNewServiceRecord(LPWSTR lpServiceName,
60 PSERVICE *lpServiceRecord);
61 DWORD ScmMarkServiceForDelete(PSERVICE pService);
62
63
64 /* rpcserver.c */
65
66 VOID ScmStartRpcServer(VOID);
67
68
69 /* services.c */
70
71 VOID PrintString(LPCSTR fmt, ...);
72
73
74
75 /* EOF */
76