mirror of
https://github.com/reactos/reactos.git
synced 2024-11-06 22:52:46 +00:00
527f2f9057
* Create a branch for some evul shell experiments. svn path=/branches/shell-experiments/; revision=61927
42 lines
1.2 KiB
Text
42 lines
1.2 KiB
Text
|
|
This is SMDLL: a helper library to talk to the ReactOS session manager (SM).
|
|
|
|
It should be linked in the following components:
|
|
|
|
a) the SM itself, because it registers for managing native processes
|
|
IMAGE_SUBSYSTEM_NATIVE;
|
|
|
|
b) environment subsystem servers, because each one should register in
|
|
the SM its own subsystem (willing to manage those processes);
|
|
|
|
c) terminal emulators for optional subsystems, like posixw32 and os2w32,
|
|
to ask the SM to start the optional subsystem server they need connect to;
|
|
|
|
d) system and development utilites to debug/query the SM.
|
|
|
|
2004-02-15 ea
|
|
|
|
|
|
How a subsystem uses these APIs
|
|
===============================
|
|
|
|
Thread #0 Thread #1
|
|
- create your own directory (\EXAMPLE)
|
|
- create an event E0
|
|
- create your call back API port (\EXAMPLE\SbApiPort)
|
|
and serving thread T1
|
|
- wait connection requests on call
|
|
back port (\EXAMPLE\SbApiPort)
|
|
- SmConnectApiPort(
|
|
\EXAMPLE\SbApiPort,
|
|
hSbApiPort,
|
|
SUBSYSTEM_ID,
|
|
& hSmApiPort)
|
|
- wait for E0
|
|
- as SM calls back, signal event E0
|
|
- create your API port (\EXAMPLE\ApiPort) and
|
|
initialize the subsystem
|
|
- call SmCompleteSession (hSmApiPort,
|
|
hSbApiPort,
|
|
hApiPort)
|
|
- manage processes etc.
|