[KERNEL32]
[reactos.git] / include / reactos / subsys / win / vdm.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Base API Server DLL
4 * FILE: include/reactos/subsys/win/vdm.h
5 * PURPOSE: Public definitions for the Virtual Dos Machine
6 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
7 * Alex Ionescu (alex.ionescu@reactos.org)
8 */
9
10 #ifndef _VDM_H
11 #define _VDM_H
12
13 #pragma once
14
15 /* CONSTANTS ******************************************************************/
16
17 typedef enum _VDM_ENTRY_CODE
18 {
19 VdmEntryUndo,
20 VdmEntryUpdateProcess,
21 VdmEntryUpdateControlCHandler
22 } VDM_ENTRY_CODE;
23
24 //
25 // Undo States
26 //
27 #define VDM_UNDO_PARTIAL 0x01
28 #define VDM_UNDO_FULL 0x02
29 #define VDM_UNDO_REUSE 0x04
30 #define VDM_UNDO_COMPLETED 0x08
31
32 //
33 // Binary Types to share with VDM
34 //
35 #define BINARY_TYPE_EXE 0x01
36 #define BINARY_TYPE_COM 0x02
37 #define BINARY_TYPE_PIF 0x03
38 #define BINARY_TYPE_DOS 0x10
39 #define BINARY_TYPE_SEPARATE_WOW 0x20
40 #define BINARY_TYPE_WOW 0x40
41 #define BINARY_TYPE_WOW_EX 0x80
42
43 //
44 // VDM States
45 //
46 #define VDM_NOT_LOADED 0x01
47 #define VDM_NOT_READY 0x02
48 #define VDM_READY 0x04
49
50 typedef struct
51 {
52 ULONG TaskId;
53 ULONG CreationFlags;
54 ULONG ExitCode;
55 ULONG CodePage;
56 HANDLE StdIn;
57 HANDLE StdOut;
58 HANDLE StdErr;
59 LPSTR CmdLine;
60 LPSTR AppName;
61 LPSTR PifFile;
62 LPSTR CurDirectory;
63 LPSTR Env;
64 ULONG EnvLen;
65 STARTUPINFOA StartupInfo;
66 LPSTR Desktop;
67 ULONG DesktopLen;
68 LPSTR Title;
69 ULONG TitleLen;
70 LPVOID Reserved;
71 ULONG ReservedLen;
72 USHORT CmdLen;
73 USHORT AppLen;
74 USHORT PifLen;
75 USHORT CurDirectoryLen;
76 USHORT VDMState;
77 USHORT CurrentDrive;
78 BOOLEAN ComingFromBat;
79 } VDM_COMMAND_INFO, *PVDM_COMMAND_INFO;
80
81 #endif // _VDM_H
82
83 /* EOF */