SM some simple work (wip)
[reactos.git] / reactos / subsys / smss / smss.h
1 #ifndef _SMSS_H_INCLUDED_
2 #define _SMSS_H_INCLUDED_
3
4 #define NTOS_MODE_USER
5 #include <ntos.h>
6 #include <sm/api.h>
7 #include <sm/helper.h>
8
9 #define CHILD_CSRSS 0
10 #define CHILD_WINLOGON 1
11
12 /* smss.c */
13 extern HANDLE SmSsProcessId;
14
15 /* init.c */
16 NTSTATUS InitSessionManager(VOID);
17
18 /* initheap.c */
19 extern HANDLE SmpHeap;
20 NTSTATUS SmCreateHeap(VOID);
21
22 /* initenv.c */
23 extern PWSTR SmSystemEnvironment;
24 NTSTATUS SmCreateEnvironment(VOID);
25 NTSTATUS SmSetEnvironmentVariables(VOID);
26 NTSTATUS SmUpdateEnvironment(VOID);
27
28 /* initobdir.c */
29 NTSTATUS SmCreateObjectDirectories(VOID);
30
31 /* initdosdev.c */
32 NTSTATUS SmInitDosDevices(VOID);
33
34 /* initrun.c */
35 extern HANDLE Children[2];
36 NTSTATUS SmRunBootApplications(VOID);
37
38 /* initmv.c */
39 NTSTATUS SmProcessFileRenameList(VOID);
40
41 /* initwkdll.c */
42 NTSTATUS SmLoadKnownDlls(VOID);
43
44 /* initpage.c */
45 NTSTATUS SmCreatePagingFiles(VOID);
46
47 /* initreg.c */
48 NTSTATUS SmInitializeRegistry(VOID);
49
50 /* initss.c */
51 NTSTATUS SmLoadSubsystems(VOID);
52 NTSTATUS SmRunCsrss(VOID);
53 NTSTATUS SmRunWinlogon(VOID);
54
55 /* smapi.c */
56 #define SMAPI(n) \
57 NTSTATUS FASTCALL n (PSM_PORT_MESSAGE Request)
58
59 /* smapiexec.c */
60 NTSTATUS STDCALL SmCreateUserProcess(LPWSTR ImagePath,
61 LPWSTR CommandLine,
62 BOOLEAN WaitForIt,
63 PLARGE_INTEGER Timeout OPTIONAL,
64 BOOLEAN TerminateIt,
65 PRTL_PROCESS_INFO ProcessInfo OPTIONAL);
66 NTSTATUS FASTCALL SmExecPgm(PSM_PORT_MESSAGE);
67
68 /* smapicomp.c */
69 NTSTATUS FASTCALL SmCompSes(PSM_PORT_MESSAGE);
70
71 NTSTATUS SmCreateApiPort(VOID);
72 VOID STDCALL SmpApiThread(PVOID);
73
74 /* client.c */
75 typedef struct _SM_CLIENT_DATA
76 {
77 USHORT SubsystemId;
78 BOOL Initialized;
79 HANDLE ServerProcess;
80 HANDLE ApiPort;
81 HANDLE ApiPortThread;
82 HANDLE SbApiPort;
83 WCHAR SbApiPortName [SM_SB_NAME_MAX_LENGTH];
84 struct _SM_CLIENT_DATA * Next;
85
86 } SM_CLIENT_DATA, *PSM_CLIENT_DATA;
87 NTSTATUS SmInitializeClientManagement(VOID);
88 NTSTATUS SmpRegisterSmss(VOID);
89 NTSTATUS STDCALL SmCreateClient(PSM_PORT_MESSAGE,PSM_CLIENT_DATA*);
90 NTSTATUS STDCALL SmDestroyClient(ULONG);
91
92 /* debug.c */
93 extern HANDLE DbgSsApiPort;
94 extern HANDLE DbgUiApiPort;
95 NTSTATUS SmInitializeDbgSs(VOID);
96
97 /* print.c */
98 VOID STDCALL DisplayString(LPCWSTR lpwString);
99 VOID STDCALL PrintString (char* fmt, ...);
100
101 #endif /* _SMSS_H_INCLUDED_ */
102
103 /* EOF */
104