Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
2.3 KiB

  1. /*++
  2. Copyright (c) 1989 Microsoft Corporation
  3. Module Name:
  4. sm.h
  5. Abstract:
  6. Session Manager Types and Prototypes
  7. Author:
  8. Mark Lucovsky (markl) 04-Oct-1989
  9. Revision History:
  10. --*/
  11. #ifndef _SM_
  12. #define _SM_
  13. //
  14. // Message formats used by clients of the session manager.
  15. //
  16. typedef struct _SMCONNECTINFO {
  17. ULONG ImageType;
  18. } SMCONNECTINFO, *PSMCONNECTINFO;
  19. typedef enum _SMAPINUMBER {
  20. SmCreateForeignSessionApi,
  21. SmSessionCompleteApi,
  22. SmTerminateForeignSessionApi,
  23. SmExecPgmApi,
  24. SmLoadDeferedSubsystemApi,
  25. SmStartCsrApi,
  26. SmStopCsrApi,
  27. SmMaxApiNumber
  28. } SMAPINUMBER;
  29. typedef struct _SMCREATEFOREIGNSESSION {
  30. ULONG ForeignSessionId;
  31. ULONG SourceSessionId;
  32. RTL_USER_PROCESS_INFORMATION ProcessInformation;
  33. CLIENT_ID DebugUiClientId;
  34. } SMCREATEFOREIGNSESSION, *PSMCREATEFOREIGNSESSION;
  35. typedef struct _SMSESSIONCOMPLETE {
  36. ULONG SessionId;
  37. NTSTATUS CompletionStatus;
  38. } SMSESSIONCOMPLETE, *PSMSESSIONCOMPLETE;
  39. typedef struct _SMTERMINATEFOREIGNSESSION {
  40. ULONG Tbd;
  41. } SMTERMINATEFOREIGNSESSION, *PSMTERMINATEFOREIGNSESSION;
  42. typedef struct _SMEXECPGM {
  43. RTL_USER_PROCESS_INFORMATION ProcessInformation;
  44. BOOLEAN DebugFlag;
  45. } SMEXECPGM, *PSMEXECPGM;
  46. #define SMP_MAXIMUM_SUBSYSTEM_NAME 32
  47. typedef struct _SMLOADDEFERED {
  48. ULONG SubsystemNameLength;
  49. WCHAR SubsystemName[SMP_MAXIMUM_SUBSYSTEM_NAME];
  50. } SMLOADDEFERED, *PSMLOADDEFERED;
  51. #define SMP_MAXIMUM_INITIAL_COMMAND 128
  52. typedef struct _SMSTARTCSR {
  53. ULONG MuSessionId;
  54. ULONG InitialCommandLength;
  55. WCHAR InitialCommand[SMP_MAXIMUM_INITIAL_COMMAND];
  56. ULONG_PTR InitialCommandProcessId;
  57. ULONG_PTR WindowsSubSysProcessId;
  58. } SMSTARTCSR, *PSMSTARTCSR;
  59. typedef struct _SMSTOPCSR {
  60. ULONG MuSessionId;
  61. } SMSTOPCSR, *PSMSTOPCSR;
  62. typedef struct _SMAPIMSG {
  63. PORT_MESSAGE h;
  64. SMAPINUMBER ApiNumber;
  65. NTSTATUS ReturnedStatus;
  66. union {
  67. SMCREATEFOREIGNSESSION CreateForeignSession;
  68. SMSESSIONCOMPLETE SessionComplete;
  69. SMTERMINATEFOREIGNSESSION TerminateForeignComplete;
  70. SMEXECPGM ExecPgm;
  71. SMLOADDEFERED LoadDefered;
  72. SMSTARTCSR StartCsr;
  73. SMSTOPCSR StopCsr;
  74. } u;
  75. } SMAPIMSG, *PSMAPIMSG;
  76. typedef union _SMMESSAGE_SIZE {
  77. DBGKM_APIMSG m1;
  78. SMAPIMSG m2;
  79. SBAPIMSG m3;
  80. } SMMESSAGE_SIZE;
  81. #endif // _SM_