1 #ifndef _SMSS_H_INCLUDED_
2 #define _SMSS_H_INCLUDED_
6 #define WIN32_NO_STATUS
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 NTAPI
SmRegisterInternalSubsystem(LPWSTR
,USHORT
,PHANDLE
);
54 NTSTATUS
SmLoadSubsystems(VOID
);
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
);
65 #define SM_CREATE_FLAG_WAIT 0x01
66 #define SM_CREATE_FLAG_RESERVE_1MB 0x02
67 NTSTATUS NTAPI
SmCreateUserProcess(LPWSTR ImagePath
,
70 PLARGE_INTEGER Timeout OPTIONAL
,
71 PRTL_USER_PROCESS_INFORMATION UserProcessInfo OPTIONAL
);
72 NTSTATUS FASTCALL
SmExecPgm(PSM_PORT_MESSAGE
);
75 NTSTATUS FASTCALL
SmCompSes(PSM_PORT_MESSAGE
);
78 NTSTATUS FASTCALL
SmQryInfo(PSM_PORT_MESSAGE
);
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
86 RTL_CRITICAL_SECTION Lock
;
87 WCHAR ProgramName
[SM_SB_NAME_MAX_LENGTH
];
91 ULONG ServerProcessId
;
96 WCHAR SbApiPortName
[SM_SB_NAME_MAX_LENGTH
];
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
);
108 extern HANDLE DbgSsApiPort
;
109 extern HANDLE DbgUiApiPort
;
110 NTSTATUS
SmInitializeDbgSs(VOID
);
113 VOID NTAPI
DisplayString(LPCWSTR lpwString
);
114 VOID NTAPI
PrintString (char* fmt
, ...);
116 #endif /* _SMSS_H_INCLUDED_ */