Build smss with NDK
[reactos.git] / reactos / subsys / smss / smss.h
1 #ifndef _SMSS_H_INCLUDED_
2 #define _SMSS_H_INCLUDED_
3
4 #include <windows.h>
5 #define NTOS_MODE_USER
6 #include <ndk/ntndk.h>
7
8 #include <rosrtl/string.h>
9 #include <wchar.h>
10
11 #include <sm/api.h>
12 #include <sm/helper.h>
13
14 /* smss.c */
15 extern ULONG SmSsProcessId;
16
17 /* init.c */
18 NTSTATUS InitSessionManager(VOID);
19
20 /* initheap.c */
21 extern HANDLE SmpHeap;
22 NTSTATUS SmCreateHeap(VOID);
23
24 /* initenv.c */
25 extern PWSTR SmSystemEnvironment;
26 NTSTATUS SmCreateEnvironment(VOID);
27 NTSTATUS SmSetEnvironmentVariables(VOID);
28 NTSTATUS SmUpdateEnvironment(VOID);
29
30 /* initobdir.c */
31 NTSTATUS SmCreateObjectDirectories(VOID);
32
33 /* initdosdev.c */
34 NTSTATUS SmInitDosDevices(VOID);
35
36 /* initrun.c */
37 extern HANDLE Children[2];
38 NTSTATUS SmRunBootApplications(VOID);
39
40 /* initmv.c */
41 NTSTATUS SmProcessFileRenameList(VOID);
42
43 /* initwkdll.c */
44 NTSTATUS SmLoadKnownDlls(VOID);
45
46 /* initpage.c */
47 NTSTATUS SmCreatePagingFiles(VOID);
48
49 /* initreg.c */
50 NTSTATUS SmInitializeRegistry(VOID);
51
52 /* initss.c */
53 NTSTATUS SmLoadSubsystems(VOID);
54
55 /* smapi.c */
56 #define SMAPI(n) \
57 NTSTATUS FASTCALL n (PSM_PORT_MESSAGE Request)
58 PSM_CONNECT_DATA FASTCALL SmpGetConnectData (PSM_PORT_MESSAGE);
59 NTSTATUS SmCreateApiPort(VOID);
60 VOID STDCALL SmpApiThread(PVOID);
61
62
63 /* smapiexec.c */
64 NTSTATUS STDCALL SmCreateUserProcess(LPWSTR ImagePath,
65 LPWSTR CommandLine,
66 BOOLEAN WaitForIt,
67 PLARGE_INTEGER Timeout OPTIONAL,
68 PRTL_PROCESS_INFO UserProcessInfo OPTIONAL);
69 NTSTATUS FASTCALL SmExecPgm(PSM_PORT_MESSAGE);
70
71 /* smapicomp.c */
72 NTSTATUS FASTCALL SmCompSes(PSM_PORT_MESSAGE);
73
74 /* smapiquery.c */
75 NTSTATUS FASTCALL SmQryInfo(PSM_PORT_MESSAGE);
76
77 /* client.c */
78 #define SM_CLIENT_FLAG_CANDIDATE 0x8000
79 #define SM_CLIENT_FLAG_INITIALIZED 0x0001
80 #define SM_CLIENT_FLAG_REQUIRED 0x0002
81 typedef struct _SM_CLIENT_DATA
82 {
83 RTL_CRITICAL_SECTION Lock;
84 WCHAR ProgramName [SM_SB_NAME_MAX_LENGTH];
85 USHORT SubsystemId;
86 WORD Flags;
87 WORD Unused;
88 ULONG ServerProcessId;
89 HANDLE ServerProcess;
90 HANDLE ApiPort;
91 HANDLE ApiPortThread;
92 HANDLE SbApiPort;
93 WCHAR SbApiPortName [SM_SB_NAME_MAX_LENGTH];
94 struct _SM_CLIENT_DATA * Next;
95
96 } SM_CLIENT_DATA, *PSM_CLIENT_DATA;
97 NTSTATUS SmInitializeClientManagement (VOID);
98 NTSTATUS STDCALL SmCreateClient (PRTL_PROCESS_INFO,PWSTR);
99 NTSTATUS STDCALL SmDestroyClient (ULONG);
100 NTSTATUS STDCALL SmBeginClientInitialization (PSM_PORT_MESSAGE,PSM_CLIENT_DATA*);
101 NTSTATUS STDCALL SmCompleteClientInitialization (ULONG);
102 NTSTATUS FASTCALL SmGetClientBasicInformation (PSM_BASIC_INFORMATION);
103 NTSTATUS FASTCALL SmGetSubSystemInformation (PSM_SUBSYSTEM_INFORMATION);
104
105 /* debug.c */
106 extern HANDLE DbgSsApiPort;
107 extern HANDLE DbgUiApiPort;
108 NTSTATUS SmInitializeDbgSs(VOID);
109
110 /* print.c */
111 VOID STDCALL DisplayString(LPCWSTR lpwString);
112 VOID STDCALL PrintString (char* fmt, ...);
113
114 #endif /* _SMSS_H_INCLUDED_ */
115
116 /* EOF */
117