- new icons for all control panel applets.
[reactos.git] / reactos / subsys / smss / smss.h
1 #ifndef _SMSS_H_INCLUDED_
2 #define _SMSS_H_INCLUDED_
3
4 #include <stdio.h>
5 #define WIN32_NO_STATUS
6 #include <windows.h>
7 #define NTOS_MODE_USER
8 #include <ndk/ntndk.h>
9
10 #include <sm/api.h>
11 #include <sm/helper.h>
12
13 /* smss.c */
14 extern ULONG SmSsProcessId;
15
16 /* init.c */
17 NTSTATUS InitSessionManager(VOID);
18
19 /* initheap.c */
20 extern HANDLE SmpHeap;
21 NTSTATUS SmCreateHeap(VOID);
22
23 /* initenv.c */
24 extern PWSTR SmSystemEnvironment;
25 NTSTATUS SmCreateEnvironment(VOID);
26 NTSTATUS SmSetEnvironmentVariables(VOID);
27 NTSTATUS SmUpdateEnvironment(VOID);
28
29 /* initobdir.c */
30 NTSTATUS SmCreateObjectDirectories(VOID);
31
32 /* initdosdev.c */
33 NTSTATUS SmInitDosDevices(VOID);
34
35 /* initrun.c */
36 extern HANDLE Children[2];
37 NTSTATUS SmRunBootApplications(VOID);
38
39 /* initmv.c */
40 NTSTATUS SmProcessFileRenameList(VOID);
41
42 /* initwkdll.c */
43 NTSTATUS SmLoadKnownDlls(VOID);
44
45 /* initpage.c */
46 NTSTATUS SmCreatePagingFiles(VOID);
47
48 /* initreg.c */
49 NTSTATUS SmInitializeRegistry(VOID);
50
51 /* initss.c */
52 NTSTATUS STDCALL SmRegisterInternalSubsystem(LPWSTR,USHORT,PHANDLE);
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_USER_PROCESS_INFORMATION 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
95 } SM_CLIENT_DATA, *PSM_CLIENT_DATA;
96 NTSTATUS SmInitializeClientManagement (VOID);
97 NTSTATUS STDCALL SmCreateClient (PRTL_USER_PROCESS_INFORMATION,PWSTR);
98 NTSTATUS STDCALL SmDestroyClient (ULONG);
99 NTSTATUS STDCALL SmBeginClientInitialization (PSM_PORT_MESSAGE,PSM_CLIENT_DATA*);
100 NTSTATUS STDCALL SmCompleteClientInitialization (ULONG);
101 NTSTATUS FASTCALL SmGetClientBasicInformation (PSM_BASIC_INFORMATION);
102 NTSTATUS FASTCALL SmGetSubSystemInformation (PSM_SUBSYSTEM_INFORMATION);
103
104 /* debug.c */
105 extern HANDLE DbgSsApiPort;
106 extern HANDLE DbgUiApiPort;
107 NTSTATUS SmInitializeDbgSs(VOID);
108
109 /* print.c */
110 VOID STDCALL DisplayString(LPCWSTR lpwString);
111 VOID STDCALL PrintString (char* fmt, ...);
112
113 #endif /* _SMSS_H_INCLUDED_ */
114
115 /* EOF */
116