Leaked source code of windows server 2003
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.

133 lines
3.6 KiB

  1. /*****************************************************************************
  2. *
  3. * (C) Copyright MICROSOFT Corp., 1994
  4. *
  5. * Title: WSHOICTL.H - IOCTL interface for Wshell
  6. *
  7. * Version: 4.00
  8. *
  9. * Date: 30-Nov-1988
  10. *
  11. * Author: RAL
  12. *
  13. *----------------------------------------------------------------------------
  14. *
  15. * Change log:
  16. *
  17. * DATE REV DESCRIPTION
  18. * ----------- --- ----------------------------------------------------------
  19. * 01-Aug-1994 RAL Original
  20. *
  21. *****************************************************************************/
  22. #ifndef _WSHIOCTL_H
  23. #define _WSHIOCTL_H
  24. #define SHELLFILENAME "\\\\.\\SHELL"
  25. //
  26. // Flags for _SHELL_SuggestSingleMSDOSMode
  27. //
  28. // SSAMFLAG_KILLVM
  29. // A fatal application error has occurred. Display a warning box
  30. // unconditionally. Regardless of the answer, terminate the VM.
  31. // If this bit is set, the call does not return.
  32. //
  33. // SSAMFLAG_TIMER
  34. // Not used. Sorry.
  35. //
  36. // SSAM_REQREALMODE
  37. // App requires *real* mode, not V86 mode, not EMM stuff, not
  38. // QEMM. Just pure unadulterated real mode. Also known as
  39. // SSAM_COMANCHE, because Comanche does an "lgdt" to enter
  40. // protected mode without checking if it is safe to do so.
  41. // This flag is inspected by AppWiz to decide how to set up
  42. // the config.sys and autoexec.bat.
  43. //
  44. // SSAM_KILLUNLESSTOLD
  45. // Suggest Single MS-DOS mode (unless suppressed via PIF), and
  46. // if the answer is "Okay", then kill the VM. If the user
  47. // says, "Keep running", then let it stay.
  48. //
  49. // SSAM_FROMREGLIST
  50. // This app was run from a command prompt, triggered by registry
  51. // settings. Just re-execute it in its own VM so that APPS.INF
  52. // settings will take effect.
  53. //
  54. // SSAM_FAILEDAPI
  55. // This app just made an API call that was unsuccessful or
  56. // unsupported. If the app terminates within 0.1 second,
  57. // then suggest single-app mode. If the app continues
  58. // execution, then don't suggest.
  59. //
  60. #define SSAMFLAG_KILLVM 0x0000001
  61. #define SSAMFLAG_TIMER 0x0000002
  62. #define SSAMFLAG_REQREALMODE 0x0000004
  63. #define SSAMFLAG_KILLUNLESSTOLD 0x0000008
  64. #define SSAMFLAG_FROMREGLIST 0x0000010
  65. #define SSAMFLAG_FAILEDAPI 0x0000020
  66. //
  67. // IOCTL codes
  68. //
  69. #define WSHIOCTL_GETVERSION 0
  70. #define WSHIOCTL_BLUESCREEN 1
  71. #define WSHIOCTL_GET1APPINFO 2
  72. #define WSHIOCTL_SIGNALSEM 3
  73. #define WSHIOCTL_MAX 4 /* Remember, _MAX = _LIMIT + 1 */
  74. //
  75. // Result codes
  76. //
  77. #define SSR_CONTINUE 0
  78. #define SSR_CLOSEVM 1
  79. #define SSR_KILLAPP 2
  80. //
  81. // Sizes for strings
  82. //
  83. #define MAXVMTITLESIZE 32
  84. #define MAXVMPROGSIZE 64
  85. #define MAXVMCMDSIZE 64
  86. #define MAXVMDIRSIZE 64
  87. #define MAXPIFPATHSIZE 260
  88. typedef struct _SINGLEAPPSTRUC { /* shex */
  89. DWORD SSA_dwFlags;
  90. DWORD SSA_VMHandle;
  91. DWORD SSA_ResultPtr;
  92. DWORD SSA_Semaphore;
  93. char SSA_PIFPath[MAXPIFPATHSIZE];
  94. char SSA_VMTitle[MAXVMTITLESIZE];
  95. char SSA_ProgName[MAXVMPROGSIZE];
  96. char SSA_CommandLine[MAXVMCMDSIZE];
  97. char SSA_CurDir[MAXVMCMDSIZE];
  98. } SINGLEAPPSTRUC;
  99. //
  100. // Structures for WSHIOCTL_BLUESCREEN.
  101. //
  102. // lpvInBuffer must point to a BLUESCREENINFO structure.
  103. // lpvOutBuffer must point to a DWORD which receives the message box result.
  104. // The message box result is an IDXX value, as defined in windows.h.
  105. //
  106. /* H2INCSWITCHES -t */
  107. typedef struct _BLUESCREENINFO { /* bsi */
  108. char * pszText; /* Message text (OEM character set) */
  109. char * pszTitle; /* Message title (OEM character set) */
  110. /* NULL means "Windows" */
  111. DWORD flStyle; /* Message box flags (see windows.h) */
  112. /* Add'l flags defined in ddk\inc\shell.h */
  113. } BLUESCREENINFO;
  114. /* H2INCSWITCHES -t- */
  115. #endif // _WSHIOCTL_H