1 #ifndef _SMSS_H_INCLUDED_
2 #define _SMSS_H_INCLUDED_
8 #include <rosrtl/string.h>
12 #include <sm/helper.h>
15 extern ULONG SmSsProcessId
;
18 NTSTATUS
InitSessionManager(VOID
);
21 extern HANDLE SmpHeap
;
22 NTSTATUS
SmCreateHeap(VOID
);
25 extern PWSTR SmSystemEnvironment
;
26 NTSTATUS
SmCreateEnvironment(VOID
);
27 NTSTATUS
SmSetEnvironmentVariables(VOID
);
28 NTSTATUS
SmUpdateEnvironment(VOID
);
31 NTSTATUS
SmCreateObjectDirectories(VOID
);
34 NTSTATUS
SmInitDosDevices(VOID
);
37 extern HANDLE Children
[2];
38 NTSTATUS
SmRunBootApplications(VOID
);
41 NTSTATUS
SmProcessFileRenameList(VOID
);
44 NTSTATUS
SmLoadKnownDlls(VOID
);
47 NTSTATUS
SmCreatePagingFiles(VOID
);
50 NTSTATUS
SmInitializeRegistry(VOID
);
53 NTSTATUS
SmLoadSubsystems(VOID
);
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
);
64 NTSTATUS STDCALL
SmCreateUserProcess(LPWSTR ImagePath
,
67 PLARGE_INTEGER Timeout OPTIONAL
,
68 PRTL_PROCESS_INFO UserProcessInfo OPTIONAL
);
69 NTSTATUS FASTCALL
SmExecPgm(PSM_PORT_MESSAGE
);
72 NTSTATUS FASTCALL
SmCompSes(PSM_PORT_MESSAGE
);
75 NTSTATUS FASTCALL
SmQryInfo(PSM_PORT_MESSAGE
);
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
83 RTL_CRITICAL_SECTION Lock
;
84 WCHAR ProgramName
[SM_SB_NAME_MAX_LENGTH
];
88 ULONG ServerProcessId
;
93 WCHAR SbApiPortName
[SM_SB_NAME_MAX_LENGTH
];
94 struct _SM_CLIENT_DATA
* Next
;
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
);
106 extern HANDLE DbgSsApiPort
;
107 extern HANDLE DbgUiApiPort
;
108 NTSTATUS
SmInitializeDbgSs(VOID
);
111 VOID STDCALL
DisplayString(LPCWSTR lpwString
);
112 VOID STDCALL
PrintString (char* fmt
, ...);
114 #endif /* _SMSS_H_INCLUDED_ */