1 #ifndef _SMSS_H_INCLUDED_
2 #define _SMSS_H_INCLUDED_
5 #define WIN32_NO_STATUS
11 #include <sm/helper.h>
14 extern ULONG SmSsProcessId
;
17 NTSTATUS
InitSessionManager(VOID
);
20 extern HANDLE SmpHeap
;
21 NTSTATUS
SmCreateHeap(VOID
);
24 extern PWSTR SmSystemEnvironment
;
25 NTSTATUS
SmCreateEnvironment(VOID
);
26 NTSTATUS
SmSetEnvironmentVariables(VOID
);
27 NTSTATUS
SmUpdateEnvironment(VOID
);
30 NTSTATUS
SmCreateObjectDirectories(VOID
);
33 NTSTATUS
SmInitDosDevices(VOID
);
36 extern HANDLE Children
[2];
37 NTSTATUS
SmRunBootApplications(VOID
);
40 NTSTATUS
SmProcessFileRenameList(VOID
);
43 NTSTATUS
SmLoadKnownDlls(VOID
);
46 NTSTATUS
SmCreatePagingFiles(VOID
);
49 NTSTATUS
SmInitializeRegistry(VOID
);
52 NTSTATUS STDCALL
SmRegisterInternalSubsystem(LPWSTR
,USHORT
,PHANDLE
);
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_USER_PROCESS_INFORMATION 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
];
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
);
105 extern HANDLE DbgSsApiPort
;
106 extern HANDLE DbgUiApiPort
;
107 NTSTATUS
SmInitializeDbgSs(VOID
);
110 VOID STDCALL
DisplayString(LPCWSTR lpwString
);
111 VOID STDCALL
PrintString (char* fmt
, ...);
113 #endif /* _SMSS_H_INCLUDED_ */