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.
|
|
/* command.h - This file has all the defines and data structures needed
* for command.com/command.dll communication. * * Sudeepb 17-Sep-1991 Created */
/* ASM
include bop.inc
CMDSVC macro func BOP BOP_CMD db func endm */
#define SVC_CMDEXITVDM 0
#define SVC_CMDGETNEXTCMD 1
#define SVC_CMDCOMSPEC 2
#define SVC_CMDSAVEWORLD 3
#define SVC_CMDGETCURDIR 4
#define SVC_CMDSETINFO 5
#define SVC_GETSTDHANDLE 6
#define SVC_CMDCHECKBINARY 7
#define SVC_CMDEXEC 8
#define SVC_CMDINITCONSOLE 9
#define SVC_EXECCOMSPEC32 10
#define SVC_RETURNEXITCODE 11
#define SVC_GETCONFIGSYS 12
#define SVC_GETAUTOEXECBAT 13
#define SVC_GETKBDLAYOUT 14
#define SVC_GETINITENVIRONMENT 15
#define SVC_GETSTARTINFO 16
#define SVC_SETWINTITLE 17
#define SVC_GETCURSORPOS 30
#define SVC_CMDLASTSVC 31
#define ALL_HANDLES 7
#define HANDLE_STDIN 0
#define HANDLE_STDOUT 1
#define HANDLE_STDERR 2
#define MASK_STDIN 1
#define MASK_STDOUT 2
#define MASK_STDERR 4
// define extention type for command.com.
// these value must be in sync with 16bits. Please refer to
// tmisc1.asm in mvdm\dos\v86\cmd\command
#define BAD_EXTENTION 0 // never returned from 32 bits
#define BAT_EXTENTION 2
#define EXE_EXTENTION 4
#define COM_EXTENTION 8
#define MAX_STD_EXTENTION COM_EXTENTION
// THIS VALUE IS VERY IMPORTANT.
// 0(zero) means there is no such a program file and command.com would spit out
// well-known "bad command or file name".
// Give it to any value larger than than MAX_STD_EXTENTION) makes command.com
// by-passing any other checking and passing down the program file as is
// to DOS which doesn't have tight executable file extention convention.
// The reason that we allow program file with "non-standard" extention to
// pass through command.com and reach DOS is we receive the program pathname
// from CreateProcess which doesn't limit any file extention.
//
#define UNKNOWN_EXTENTION MAX_STD_EXTENTION + 1
/* XLATOFF */
typedef struct _SAVEWORLD { USHORT ax; USHORT bx; USHORT cx; USHORT dx; USHORT cs; USHORT ss; USHORT ds; USHORT es; USHORT si; USHORT di; USHORT bp; USHORT sp; USHORT ip; USHORT flag; ULONG ImageSize; } SAVEWORLD, *PSAVEWORLD;
extern VOID CMDInit (VOID); extern BOOL CMDRebootVDM (void);
extern BOOL fEnableInt10;
/* XLATON */
/** CMDINFO - Communication record of command.com **/
/* XLATOFF */ #pragma pack(2)
/* XLATON */
typedef struct _CMDINFO { /**/ USHORT EnvSeg; USHORT EnvSize; USHORT CurDrive; USHORT NumDrives; USHORT CmdLineSeg; USHORT CmdLineOff; USHORT CmdLineSize; USHORT ReturnCode; USHORT bStdHandles; ULONG pRdrInfo; USHORT CodePage; USHORT fTSRExit; USHORT fBatStatus; USHORT ExecPathSeg; USHORT ExecPathOff; USHORT ExecPathSize; USHORT ExecExtType; } CMDINFO; typedef CMDINFO UNALIGNED *PCMDINFO;
/* XLATOFF */ #pragma pack()
/* XLATON */
BOOL CmdDispatch (ULONG);
|