Jump to content

DosSMDoAppReq: Difference between revisions

From EDM2
Ak120 (talk | contribs)
mNo edit summary
No edit summary
Line 1: Line 1:
{{Legacy
|RepFunc=
|Remarks=This page list the older version of the function for reference.
}}
Perform an application request to start,stop, etc. a child session. This can only be called by the shell that owns the Session Manager.
Perform an application request to start,stop, etc. a child session. This can only be called by the shell that owns the Session Manager.



Revision as of 03:49, 16 September 2017

Legacy Function Warning
It is recommended to use a newer replacement for this function.
Replacement:
Remarks: This page list the older version of the function for reference.

Perform an application request to start,stop, etc. a child session. This can only be called by the shell that owns the Session Manager.

Syntax

DOSSMDOAPPREQ (appreq)

Parameters

appreq (APPREQ*)
16:16 pointer to an appreq structure:
struct APPREQ {
    short unknown;
    short length;       /* length of structure */
    short type;         /* request type */
    short rc;           /* return code */
    short sessid;       /* session id */
    short pid;          /* process id */
    short tid;          /* thread id */
    short flgs1;        /* flags 1 */
    long sema1;         /* semaphore 1 ? */
    long sema2;         /* semaphore 2 ? */
    long sema3;         /* semaphore 3 ? */
    short qstatus;      /* internal queueing status */
    short flgs2;        /* flags 2 */
    char param[1];      /* variable length data */
};

whereas:

type
       =0 start
       =1 select
       =2 set
       =3 stop
flgs1
       bit 0 called from 32 bit code
       bit 1-6 seamless session bits ?
       bit 7 VDM start session
       bit 8 ?
flgs2
       =0 terminate child
       =1 terminate all children 
param
       variable length field to store different parameters depending
       on DosStart/Stop/Set/SelectSession 

Return Code

APIRET16 Pascal far