Jump to content

SESMGR.DLL: Difference between revisions

From EDM2
Ak120 (talk | contribs)
mNo edit summary
Line 70: Line 70:
|28||[[DosSMPMPresent]]
|28||[[DosSMPMPresent]]
|-
|-
|29||DosSMRegisterDD
|29||[[DosSMRegisterDD]]
|30||[[DosSMSysInit]]
|30||[[DosSMSysInit]]
|-
|-

Revision as of 19:47, 23 September 2017

This file is the session manager dynamic link library. This file is part of the Session manager API.

This DLL is part 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 (see Tshell description - to be published in the future) 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.

Version

Date Version Size Comments
2002-03-08 19:16
2011-09-17 06:13 14.100 1,360 bytes osFree Session Manager API
2012-08-27 10:55 - 3,136 bytes

DLL Entry Points

1 DosSMSGDoPopup 2 DosSMSwitch
3 DosSMServeAppReq 4 DosGetTimes
5 DosSMSetTitle 6 DosScrUnlock
7 DosSMDoAppReq 8 DosStopSession
9 DosSelectSession 10 DosScrLock
11 DosSavRedrawWait 12 DosSavRedrawUndo
13 DosSMSGEndPopup 14 DosSetSession
15 DosSetMNLockTime 16 DosModeUndo
17 DosStartSession 18 DosSMGetStatus
19 DosModeWait 20 DosSMTerminate
21 DosSMGetAppReq 22 DosSMRealPrtSc
23 DosSMInitialize 24 DosSMStart
25 DosSMParentSwitch 26 DosSMPause
27 DosSMHDEInit 28 DosSMPMPresent
29 DosSMRegisterDD 30 DosSMSysInit
31 DosSMNotifyDD 32 DosSMNotifyDD2
33 DosSMOpenDD 34 QhKeybdHandle
35 QhMouseHandle 36 DosSMSetSessionType
37 Dos32StartSession 38 Dos32SelectSession
39 Dos32SetSession 40 Dos32StopSession
41 DosRegisterNotification

DLL's Loaded

Alternative Version

OSFree Project produced an alternative version of this file.