[TASKMGR]
[reactos.git] / base / system / smss / smss.h
1 #ifndef _SMSS_H_INCLUDED_
2 #define _SMSS_H_INCLUDED_
3
4 #include <stdio.h>
5 #include <stdlib.h>
6 #define WIN32_NO_STATUS
7 #include <windows.h>
8 #define NTOS_MODE_USER
9 #include <ndk/ntndk.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 NTAPI SmRegisterInternalSubsystem(LPWSTR,USHORT,PHANDLE);
54 NTSTATUS SmLoadSubsystems(VOID);
55
56 /* smapi.c */
57 #define SMAPI(n) \
58 NTSTATUS FASTCALL n (PSM_PORT_MESSAGE Request)
59 PSM_CONNECT_DATA FASTCALL SmpGetConnectData (PSM_PORT_MESSAGE);
60 NTSTATUS SmCreateApiPort(VOID);
61 VOID NTAPI SmpApiThread(PVOID);
62
63
64 /* smapiexec.c */
65 #define SM_CREATE_FLAG_WAIT 0x01
66 #define SM_CREATE_FLAG_RESERVE_1MB 0x02
67 NTSTATUS NTAPI SmCreateUserProcess(LPWSTR ImagePath,
68 LPWSTR CommandLine,
69 ULONG Flags,
70 PLARGE_INTEGER Timeout OPTIONAL,
71 PRTL_USER_PROCESS_INFORMATION UserProcessInfo OPTIONAL);
72 NTSTATUS FASTCALL SmExecPgm(PSM_PORT_MESSAGE);
73
74 /* smapicomp.c */
75 NTSTATUS FASTCALL SmCompSes(PSM_PORT_MESSAGE);
76
77 /* smapiquery.c */
78 NTSTATUS FASTCALL SmQryInfo(PSM_PORT_MESSAGE);
79
80 /* client.c */
81 #define SM_CLIENT_FLAG_CANDIDATE 0x8000
82 #define SM_CLIENT_FLAG_INITIALIZED 0x0001
83 #define SM_CLIENT_FLAG_REQUIRED 0x0002
84 typedef struct _SM_CLIENT_DATA
85 {
86 RTL_CRITICAL_SECTION Lock;
87 WCHAR ProgramName [SM_SB_NAME_MAX_LENGTH];
88 USHORT SubsystemId;
89 WORD Flags;
90 WORD Unused;
91 ULONG ServerProcessId;
92 HANDLE ServerProcess;
93 HANDLE ApiPort;
94 HANDLE ApiPortThread;
95 HANDLE SbApiPort;
96 WCHAR SbApiPortName [SM_SB_NAME_MAX_LENGTH];
97
98 } SM_CLIENT_DATA, *PSM_CLIENT_DATA;
99 NTSTATUS SmInitializeClientManagement (VOID);
100 NTSTATUS NTAPI SmCreateClient (PRTL_USER_PROCESS_INFORMATION,PWSTR);
101 NTSTATUS NTAPI SmDestroyClient (ULONG);
102 NTSTATUS NTAPI SmBeginClientInitialization (PSM_PORT_MESSAGE,PSM_CLIENT_DATA*);
103 NTSTATUS NTAPI SmCompleteClientInitialization (ULONG);
104 NTSTATUS FASTCALL SmGetClientBasicInformation (PSM_BASIC_INFORMATION);
105 NTSTATUS FASTCALL SmGetSubSystemInformation (PSM_SUBSYSTEM_INFORMATION);
106
107 /* debug.c */
108 extern HANDLE DbgSsApiPort;
109 extern HANDLE DbgUiApiPort;
110 NTSTATUS SmInitializeDbgSs(VOID);
111
112 /* print.c */
113 VOID NTAPI DisplayString(LPCWSTR lpwString);
114 VOID NTAPI PrintString (char* fmt, ...);
115
116 #endif /* _SMSS_H_INCLUDED_ */
117
118 /* EOF */
119