SESMGR.DLL

The session manager dynamic link library is part of the Session Manager API of OS/2's Control Program.

In the latest version of OS/2, this file forwards it's functions to DOSCALL.

The SESMGR API is pretty old, probably existing in OS/2 1.0 already, and thus most functions are 16-bit APIs. What you see and what you get through SESMGR.DLL is only the top of the iceberg; the kernel symbol table shows a lot of more SESMGR related functions; however these are not exported (by means of DOSCALLS entry points), so they are not usable, effectively. It appears that this API has been reduced to provide exactly the functions only that are required in certain programs, like TSHELL.EXE, PMMERGE.DLL, and HARDERR.EXE.

The general idea is the following: a single program, called the session shell or below, the shell owning the session manager will perform all session handling for the system. It will call DOSSMINITIALIZE and create a few notification threads that control the way sessions will switched between foreground and background.

The session shell typically has a menue or alike to control how to dispatch sessions. In normal PM, this is what you can do with ALT-ESC and CTRL-ESC keys.

For switching between fullscreen sessions, as well as switching between FS and windowed mode of a DOS session, the session manager allows drivers to intercept the process before and after doing screen save/restore (this is actually what is needed for proper handling of switching between XFree86 and PM - in XFree86 it is emulated without SESMGR; thus it sometimes fails).

SESMGR also serializes error popups using screen locks, i. e. a process can ask the session manager to block change of sessions as long as it is displaying a modal box, for instance.

Alternative Version
OSFree Project produced an alternative version of this file.