1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
/*++
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,
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;
typedef struct _SMAPIMSG {
PORT_MESSAGE h;
SMAPINUMBER ApiNumber;
NTSTATUS ReturnedStatus;
union {
SMCREATEFOREIGNSESSION CreateForeignSession;
SMSESSIONCOMPLETE SessionComplete;
SMTERMINATEFOREIGNSESSION TerminateForeignComplete;
SMEXECPGM ExecPgm;
SMLOADDEFERED LoadDefered;
} u;
} SMAPIMSG, *PSMAPIMSG;
typedef union _SMMESSAGE_SIZE {
DBGKM_APIMSG m1;
SMAPIMSG m2;
SBAPIMSG m3;
} SMMESSAGE_SIZE;
#endif // _SM_
|