windows-nt/Source/XPSP1/NT/base/subsys/sm/inc/sm.h
2020-09-26 16:20:57 +08:00

112 lines
2.3 KiB
C

/*++
Copyright (c) 1989 Microsoft Corporation
Module Name:
sm.h
Abstract:
Session Manager Types and Prototypes
Author:
Mark Lucovsky (markl) 04-Oct-1989
Revision History:
--*/
#ifndef _SM_
#define _SM_
//
// Message formats used by clients of the session manager.
//
typedef struct _SMCONNECTINFO {
ULONG ImageType;
} SMCONNECTINFO, *PSMCONNECTINFO;
typedef enum _SMAPINUMBER {
SmCreateForeignSessionApi,
SmSessionCompleteApi,
SmTerminateForeignSessionApi,
SmExecPgmApi,
SmLoadDeferedSubsystemApi,
SmStartCsrApi,
SmStopCsrApi,
SmMaxApiNumber
} SMAPINUMBER;
typedef struct _SMCREATEFOREIGNSESSION {
ULONG ForeignSessionId;
ULONG SourceSessionId;
RTL_USER_PROCESS_INFORMATION ProcessInformation;
CLIENT_ID DebugUiClientId;
} SMCREATEFOREIGNSESSION, *PSMCREATEFOREIGNSESSION;
typedef struct _SMSESSIONCOMPLETE {
ULONG SessionId;
NTSTATUS CompletionStatus;
} SMSESSIONCOMPLETE, *PSMSESSIONCOMPLETE;
typedef struct _SMTERMINATEFOREIGNSESSION {
ULONG Tbd;
} SMTERMINATEFOREIGNSESSION, *PSMTERMINATEFOREIGNSESSION;
typedef struct _SMEXECPGM {
RTL_USER_PROCESS_INFORMATION ProcessInformation;
BOOLEAN DebugFlag;
} SMEXECPGM, *PSMEXECPGM;
#define SMP_MAXIMUM_SUBSYSTEM_NAME 32
typedef struct _SMLOADDEFERED {
ULONG SubsystemNameLength;
WCHAR SubsystemName[SMP_MAXIMUM_SUBSYSTEM_NAME];
} SMLOADDEFERED, *PSMLOADDEFERED;
#define SMP_MAXIMUM_INITIAL_COMMAND 128
typedef struct _SMSTARTCSR {
ULONG MuSessionId;
ULONG InitialCommandLength;
WCHAR InitialCommand[SMP_MAXIMUM_INITIAL_COMMAND];
ULONG_PTR InitialCommandProcessId;
ULONG_PTR WindowsSubSysProcessId;
} SMSTARTCSR, *PSMSTARTCSR;
typedef struct _SMSTOPCSR {
ULONG MuSessionId;
} SMSTOPCSR, *PSMSTOPCSR;
typedef struct _SMAPIMSG {
PORT_MESSAGE h;
SMAPINUMBER ApiNumber;
NTSTATUS ReturnedStatus;
union {
SMCREATEFOREIGNSESSION CreateForeignSession;
SMSESSIONCOMPLETE SessionComplete;
SMTERMINATEFOREIGNSESSION TerminateForeignComplete;
SMEXECPGM ExecPgm;
SMLOADDEFERED LoadDefered;
SMSTARTCSR StartCsr;
SMSTOPCSR StopCsr;
} u;
} SMAPIMSG, *PSMAPIMSG;
typedef union _SMMESSAGE_SIZE {
DBGKM_APIMSG m1;
SMAPIMSG m2;
SBAPIMSG m3;
} SMMESSAGE_SIZE;
#endif // _SM_