2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS System Libraries
4 * FILE: dll/win32/kernel32/include/vdm.h
5 * PURPOSE: Virtual DOS Machines (VDM) Support Definitions
6 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
11 /* CONSTANTS ******************************************************************/
13 typedef enum _VDM_ENTRY_CODE
16 VdmEntryUpdateProcess
,
17 VdmEntryUpdateControlCHandler
23 #define VDM_UNDO_PARTIAL 0x01
24 #define VDM_UNDO_FULL 0x02
25 #define VDM_UNDO_REUSE 0x04
26 #define VDM_UNDO_COMPLETED 0x08
29 // Binary Types to share with VDM
31 #define BINARY_TYPE_EXE 0x01
32 #define BINARY_TYPE_COM 0x02
33 #define BINARY_TYPE_PIF 0x03
34 #define BINARY_TYPE_DOS 0x10
35 #define BINARY_TYPE_SEPARATE_WOW 0x20
36 #define BINARY_TYPE_WOW 0x40
37 #define BINARY_TYPE_WOW_EX 0x80
42 #define VDM_NOT_LOADED 0x01
43 #define VDM_NOT_READY 0x02
44 #define VDM_READY 0x04
46 /* STRUCTURES *****************************************************************/
48 typedef struct _GET_NEXT_VDM_COMMAND_DATA
63 STARTUPINFOA StartupInfo
;
73 USHORT wCurDirectoryLen
;
76 BOOLEAN fComingFromBat
;
77 } GET_NEXT_VDM_COMMAND_DATA
, *PGET_NEXT_VDM_COMMAND_DATA
;
79 /* FUNCTION PROTOTYPES ********************************************************/
83 BaseDestroyVDMEnvironment(
84 IN PANSI_STRING AnsiEnv
,
85 IN PUNICODE_STRING UnicodeEnv
91 IN LPCWSTR CommandLineReserved
,
94 IN PUNICODE_STRING CmdLineString
,
100 BaseCreateVDMEnvironment(
101 IN PWCHAR lpEnvironment
,
102 IN PANSI_STRING AnsiEnv
,
103 IN PUNICODE_STRING UnicodeEnv
109 IN ULONG UpdateIndex
,
110 IN OUT PHANDLE WaitHandle
,
118 IN HANDLE ProcessHandle
,
126 IN PCWCH ApplicationName
,
127 IN PCWCH CommandLine
,
128 IN PCWCH CurrentDirectory
,
129 IN PANSI_STRING AnsiEnvironment
,
130 IN PCSR_API_MESSAGE ApiMessage
,
132 IN DWORD CreationFlags
,
133 IN LPSTARTUPINFOW StartupInfo
,
134 IN HANDLE hUserToken OPTIONAL