112 lines
2.3 KiB
C
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_
|