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.

134 lines
4.0 KiB

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