1 #ifndef _SMSS_H_INCLUDED_
2 #define _SMSS_H_INCLUDED_
6 #define WIN32_NO_STATUS
9 #include <ndk/cmfuncs.h>
10 #include <ndk/exfuncs.h>
11 #include <ndk/iofuncs.h>
12 #include <ndk/lpcfuncs.h>
13 #include <ndk/mmtypes.h>
14 #include <ndk/mmfuncs.h>
15 #include <ndk/obfuncs.h>
16 #include <ndk/psfuncs.h>
17 #include <ndk/rtlfuncs.h>
18 #include <ndk/umfuncs.h>
21 #include <sm/helper.h>
24 extern ULONG SmSsProcessId
;
27 NTSTATUS
InitSessionManager(VOID
);
30 extern HANDLE SmpHeap
;
31 NTSTATUS
SmCreateHeap(VOID
);
34 extern PWSTR SmSystemEnvironment
;
35 NTSTATUS
SmCreateEnvironment(VOID
);
36 NTSTATUS
SmSetEnvironmentVariables(VOID
);
37 NTSTATUS
SmUpdateEnvironment(VOID
);
40 NTSTATUS
SmCreateObjectDirectories(VOID
);
43 NTSTATUS
SmInitDosDevices(VOID
);
46 extern HANDLE Children
[2];
47 NTSTATUS
SmRunBootApplications(VOID
);
50 NTSTATUS
SmProcessFileRenameList(VOID
);
53 NTSTATUS
SmLoadKnownDlls(VOID
);
56 NTSTATUS
SmCreatePagingFiles(VOID
);
59 NTSTATUS
SmInitializeRegistry(VOID
);
62 NTSTATUS NTAPI
SmRegisterInternalSubsystem(LPWSTR
,USHORT
,PHANDLE
);
63 NTSTATUS
SmLoadSubsystems(VOID
);
67 NTSTATUS FASTCALL n (PSM_PORT_MESSAGE Request)
68 PSM_CONNECT_DATA FASTCALL
SmpGetConnectData (PSM_PORT_MESSAGE
);
69 NTSTATUS
SmCreateApiPort(VOID
);
70 VOID NTAPI
SmpApiThread(PVOID
);
74 #define SM_CREATE_FLAG_WAIT 0x01
75 #define SM_CREATE_FLAG_RESERVE_1MB 0x02
76 NTSTATUS NTAPI
SmCreateUserProcess(LPWSTR ImagePath
,
79 PLARGE_INTEGER Timeout OPTIONAL
,
80 PRTL_USER_PROCESS_INFORMATION UserProcessInfo OPTIONAL
);
81 NTSTATUS FASTCALL
SmExecPgm(PSM_PORT_MESSAGE
);
84 NTSTATUS FASTCALL
SmCompSes(PSM_PORT_MESSAGE
);
87 NTSTATUS FASTCALL
SmQryInfo(PSM_PORT_MESSAGE
);
90 #define SM_CLIENT_FLAG_CANDIDATE 0x8000
91 #define SM_CLIENT_FLAG_INITIALIZED 0x0001
92 #define SM_CLIENT_FLAG_REQUIRED 0x0002
93 typedef struct _SM_CLIENT_DATA
95 RTL_CRITICAL_SECTION Lock
;
96 WCHAR ProgramName
[SM_SB_NAME_MAX_LENGTH
];
100 ULONG ServerProcessId
;
101 HANDLE ServerProcess
;
103 HANDLE ApiPortThread
;
105 WCHAR SbApiPortName
[SM_SB_NAME_MAX_LENGTH
];
107 } SM_CLIENT_DATA
, *PSM_CLIENT_DATA
;
108 NTSTATUS
SmInitializeClientManagement (VOID
);
109 NTSTATUS NTAPI
SmCreateClient (PRTL_USER_PROCESS_INFORMATION
,PWSTR
);
110 NTSTATUS NTAPI
SmDestroyClient (ULONG
);
111 NTSTATUS NTAPI
SmBeginClientInitialization (PSM_PORT_MESSAGE
,PSM_CLIENT_DATA
*);
112 NTSTATUS NTAPI
SmCompleteClientInitialization (ULONG
);
113 NTSTATUS FASTCALL
SmGetClientBasicInformation (PSM_BASIC_INFORMATION
);
114 NTSTATUS FASTCALL
SmGetSubSystemInformation (PSM_SUBSYSTEM_INFORMATION
);
117 extern HANDLE DbgSsApiPort
;
118 extern HANDLE DbgUiApiPort
;
119 NTSTATUS
SmInitializeDbgSs(VOID
);
122 VOID NTAPI
DisplayString(LPCWSTR lpwString
);
123 VOID NTAPI
PrintString (char* fmt
, ...);
125 #endif /* _SMSS_H_INCLUDED_ */