2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
4 * FILE: subsystems/mvdm/ntvdm/dos/dem.h
5 * PURPOSE: DOS 32-bit Emulation Support Library -
6 * This library is used by the built-in NTVDM DOS32 and by
7 * the NT 16-bit DOS in Windows (via BOPs). It also exposes
8 * exported functions that can be used by VDDs.
9 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
10 * Hermes Belusca-Maito (hermes.belusca@sfr.fr)
16 /* INCLUDES *******************************************************************/
18 #include "dos32krnl/dos.h"
20 /* DEFINES ********************************************************************/
23 #define BOP_LOAD_DOS 0x2B // DOS Loading and Initializing BOP. In parameter (following bytes) we take a NULL-terminated string indicating the name of the DOS kernel file.
24 #define BOP_START_DOS 0x2C // DOS Starting BOP. In parameter (following bytes) we take a NULL-terminated string indicating the name of the DOS kernel file.
25 #define BOP_DOS 0x50 // DOS System BOP (for NTIO.SYS and NTDOS.SYS)
26 #define BOP_CMD 0x54 // DOS Command Interpreter BOP (for COMMAND.COM)
28 /* VARIABLES ******************************************************************/
30 /* FUNCTIONS ******************************************************************/
32 typedef VOID (*CHAR_PRINT
)(IN CHAR Character
);
33 VOID
BiosCharPrint(CHAR Character
);
34 VOID
DosCharPrint(CHAR Character
);
36 VOID
DemDisplayMessage(IN CHAR_PRINT CharPrint
,
37 IN LPCSTR Format
, ...);
39 #define BiosDisplayMessage(Format, ...) \
40 DemDisplayMessage(BiosCharPrint, (Format), ##__VA_ARGS__)
42 #define DosDisplayMessage(Format, ...) \
43 DemDisplayMessage(DosCharPrint, (Format), ##__VA_ARGS__)
46 BOOLEAN
DosShutdown(BOOLEAN Immediate
);
48 DWORD
DosStartProcess32(IN LPCSTR ExecutablePath
,
49 IN LPCSTR CommandLine
,
50 IN LPCSTR Environment OPTIONAL
,
51 IN DWORD ReturnAddress OPTIONAL
,
52 IN BOOLEAN StartComSpec
);
74 OUT PVOID lpFindFileData
,
83 OUT PVOID lpFindFileData
88 demGetPhysicalDriveType
103 demSetCurrentDirectoryGetDrive
105 IN LPCSTR CurrentDirectory
,
106 OUT PUCHAR DriveNumber