[BASESRV]
[reactos.git] / dll / win32 / kernel32 / include / vdm.h
1 /*
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)
7 */
8
9 #pragma once
10
11 /* CONSTANTS ******************************************************************/
12
13 typedef enum _VDM_ENTRY_CODE
14 {
15 VdmEntryUndo,
16 VdmEntryUpdateProcess,
17 VdmEntryUpdateControlCHandler
18 } VDM_ENTRY_CODE;
19
20 //
21 // Undo States
22 //
23 #define VDM_UNDO_PARTIAL 0x01
24 #define VDM_UNDO_FULL 0x02
25 #define VDM_UNDO_REUSE 0x04
26 #define VDM_UNDO_COMPLETED 0x08
27
28 /* STRUCTURES *****************************************************************/
29
30 typedef struct _GET_NEXT_VDM_COMMAND_DATA
31 {
32 ULONG iTask;
33 ULONG dwUnused;
34 ULONG dwExitCode;
35 ULONG dwCodePage;
36 HANDLE hStdIn;
37 HANDLE hStdOut;
38 HANDLE hStdErr;
39 LPSTR lpCmdLine;
40 LPSTR lpAppName;
41 LPSTR lpPifFile;
42 LPSTR lpCurDirectory;
43 LPSTR lpEnv;
44 ULONG dwEnvLen;
45 STARTUPINFOA StartupInfo;
46 LPSTR lpDesktop;
47 ULONG dwDesktopLen;
48 LPSTR lpTitle;
49 ULONG dwTitleLen;
50 LPVOID lpReserved;
51 ULONG dwReservedLen;
52 USHORT wCmdLen;
53 USHORT wAppLen;
54 USHORT wPifLen;
55 USHORT wCurDirectoryLen;
56 USHORT wVDMState;
57 USHORT wCurrentDrive;
58 BOOLEAN fComingFromBat;
59 } GET_NEXT_VDM_COMMAND_DATA, *PGET_NEXT_VDM_COMMAND_DATA;
60
61 /* FUNCTION PROTOTYPES ********************************************************/
62
63 BOOL
64 NTAPI
65 BaseDestroyVDMEnvironment(
66 IN PANSI_STRING AnsiEnv,
67 IN PUNICODE_STRING UnicodeEnv
68 );
69
70 BOOL
71 WINAPI
72 BaseGetVdmConfigInfo(
73 IN LPCWSTR CommandLineReserved,
74 IN ULONG DosSeqId,
75 IN ULONG BinaryType,
76 IN PUNICODE_STRING CmdLineString,
77 OUT PULONG VdmSize
78 );
79
80 BOOL
81 NTAPI
82 BaseCreateVDMEnvironment(
83 IN PWCHAR lpEnvironment,
84 IN PANSI_STRING AnsiEnv,
85 IN PUNICODE_STRING UnicodeEnv
86 );
87
88 BOOL
89 WINAPI
90 BaseUpdateVDMEntry(
91 IN ULONG UpdateIndex,
92 IN OUT PHANDLE WaitHandle,
93 IN ULONG IndexInfo,
94 IN ULONG BinaryType
95 );
96
97 BOOL
98 WINAPI
99 BaseCheckForVDM(
100 IN HANDLE ProcessHandle,
101 OUT LPDWORD ExitCode
102 );
103
104 NTSTATUS
105 WINAPI
106 BaseCheckVDM(
107 IN ULONG BinaryType,
108 IN PCWCH ApplicationName,
109 IN PCWCH CommandLine,
110 IN PCWCH CurrentDirectory,
111 IN PANSI_STRING AnsiEnvironment,
112 IN PBASE_API_MESSAGE ApiMessage,
113 IN OUT PULONG iTask,
114 IN DWORD CreationFlags,
115 IN LPSTARTUPINFOW StartupInfo,
116 IN HANDLE hUserToken OPTIONAL
117 );
118
119 /* EOF */