mirror of https://github.com/tongzx/nt5src
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.5 KiB
133 lines
3.5 KiB
/*****************************************************************************
|
|
*
|
|
* (C) Copyright MICROSOFT Corp., 1994
|
|
*
|
|
* Title: WSHOICTL.H - IOCTL interface for Wshell
|
|
*
|
|
* Version: 4.00
|
|
*
|
|
* Date: 30-Nov-1988
|
|
*
|
|
* Author: RAL
|
|
*
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
* Change log:
|
|
*
|
|
* DATE REV DESCRIPTION
|
|
* ----------- --- ----------------------------------------------------------
|
|
* 01-Aug-1994 RAL Original
|
|
*
|
|
*****************************************************************************/
|
|
|
|
#ifndef _WSHIOCTL_H
|
|
#define _WSHIOCTL_H
|
|
|
|
|
|
#define SHELLFILENAME "\\\\.\\SHELL"
|
|
|
|
//
|
|
// Flags for _SHELL_SuggestSingleMSDOSMode
|
|
//
|
|
// SSAMFLAG_KILLVM
|
|
// A fatal application error has occurred. Display a warning box
|
|
// unconditionally. Regardless of the answer, terminate the VM.
|
|
// If this bit is set, the call does not return.
|
|
//
|
|
// SSAMFLAG_TIMER
|
|
// Not used. Sorry.
|
|
//
|
|
// SSAM_REQREALMODE
|
|
// App requires *real* mode, not V86 mode, not EMM stuff, not
|
|
// QEMM. Just pure unadulterated real mode. Also known as
|
|
// SSAM_COMANCHE, because Comanche does an "lgdt" to enter
|
|
// protected mode without checking if it is safe to do so.
|
|
// This flag is inspected by AppWiz to decide how to set up
|
|
// the config.sys and autoexec.bat.
|
|
//
|
|
// SSAM_KILLUNLESSTOLD
|
|
// Suggest Single MS-DOS mode (unless suppressed via PIF), and
|
|
// if the answer is "Okay", then kill the VM. If the user
|
|
// says, "Keep running", then let it stay.
|
|
//
|
|
// SSAM_FROMREGLIST
|
|
// This app was run from a command prompt, triggered by registry
|
|
// settings. Just re-execute it in its own VM so that APPS.INF
|
|
// settings will take effect.
|
|
//
|
|
// SSAM_FAILEDAPI
|
|
// This app just made an API call that was unsuccessful or
|
|
// unsupported. If the app terminates within 0.1 second,
|
|
// then suggest single-app mode. If the app continues
|
|
// execution, then don't suggest.
|
|
//
|
|
|
|
#define SSAMFLAG_KILLVM 0x0000001
|
|
#define SSAMFLAG_TIMER 0x0000002
|
|
#define SSAMFLAG_REQREALMODE 0x0000004
|
|
#define SSAMFLAG_KILLUNLESSTOLD 0x0000008
|
|
#define SSAMFLAG_FROMREGLIST 0x0000010
|
|
#define SSAMFLAG_FAILEDAPI 0x0000020
|
|
|
|
//
|
|
// IOCTL codes
|
|
//
|
|
#define WSHIOCTL_GETVERSION 0
|
|
#define WSHIOCTL_BLUESCREEN 1
|
|
#define WSHIOCTL_GET1APPINFO 2
|
|
#define WSHIOCTL_SIGNALSEM 3
|
|
#define WSHIOCTL_MAX 4 /* Remember, _MAX = _LIMIT + 1 */
|
|
|
|
//
|
|
// Result codes
|
|
//
|
|
#define SSR_CONTINUE 0
|
|
#define SSR_CLOSEVM 1
|
|
#define SSR_KILLAPP 2
|
|
|
|
//
|
|
// Sizes for strings
|
|
//
|
|
#define MAXVMTITLESIZE 32
|
|
#define MAXVMPROGSIZE 64
|
|
#define MAXVMCMDSIZE 64
|
|
#define MAXVMDIRSIZE 64
|
|
#define MAXPIFPATHSIZE 260
|
|
|
|
typedef struct _SINGLEAPPSTRUC { /* shex */
|
|
|
|
DWORD SSA_dwFlags;
|
|
DWORD SSA_VMHandle;
|
|
DWORD SSA_ResultPtr;
|
|
DWORD SSA_Semaphore;
|
|
char SSA_PIFPath[MAXPIFPATHSIZE];
|
|
char SSA_VMTitle[MAXVMTITLESIZE];
|
|
char SSA_ProgName[MAXVMPROGSIZE];
|
|
char SSA_CommandLine[MAXVMCMDSIZE];
|
|
char SSA_CurDir[MAXVMCMDSIZE];
|
|
|
|
} SINGLEAPPSTRUC;
|
|
|
|
//
|
|
// Structures for WSHIOCTL_BLUESCREEN.
|
|
//
|
|
// lpvInBuffer must point to a BLUESCREENINFO structure.
|
|
// lpvOutBuffer must point to a DWORD which receives the message box result.
|
|
// The message box result is an IDXX value, as defined in windows.h.
|
|
//
|
|
|
|
/* H2INCSWITCHES -t */
|
|
typedef struct _BLUESCREENINFO { /* bsi */
|
|
|
|
char * pszText; /* Message text (OEM character set) */
|
|
char * pszTitle; /* Message title (OEM character set) */
|
|
/* NULL means "Windows" */
|
|
DWORD flStyle; /* Message box flags (see windows.h) */
|
|
/* Add'l flags defined in ddk\inc\shell.h */
|
|
|
|
} BLUESCREENINFO;
|
|
/* H2INCSWITCHES -t- */
|
|
|
|
|
|
|
|
#endif // _WSHIOCTL_H
|