2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
4 * FILE: subsystems/mvdm/ntvdm/ntvdm.h
5 * PURPOSE: Header file to define commonly used stuff
6 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
12 /* INCLUDES *******************************************************************/
18 /* PSDK/NDK Headers */
19 #define WIN32_NO_STATUS
29 #include <subsys/win/vdm.h>
31 // Do not include stuff that is only defined
32 // for backwards compatibility in nt_vdd.h
33 #define NO_NTVDD_COMPAT
36 DWORD WINAPI
SetLastConsoleEventActive(VOID
);
38 #define NTOS_MODE_USER
39 #include <ndk/kefuncs.h>
40 #include <ndk/mmfuncs.h>
41 #include <ndk/obfuncs.h>
42 #include <ndk/rtlfuncs.h>
43 #include <ndk/rtltypes.h>
45 /* PSEH for SEH Support */
46 #include <pseh/pseh2.h>
51 * Activate this line if you want to run NTVDM in standalone mode with:
57 * Activate this line for Win2k compliancy
59 // #define WIN2K_COMPLIANT
62 * Activate this line if you want advanced hardcoded debug facilities
63 * (called interrupts, etc...), that break PC-AT compatibility.
64 * USE AT YOUR OWN RISK! (disabled by default)
66 // #define ADVANCED_DEBUGGING
68 #ifdef ADVANCED_DEBUGGING
69 #define ADVANCED_DEBUGGING_LEVEL 1
73 /* VARIABLES ******************************************************************/
75 typedef struct _NTVDM_SETTINGS
77 ANSI_STRING BiosFileName
;
79 ANSI_STRING HardDisks
[4];
80 } NTVDM_SETTINGS
, *PNTVDM_SETTINGS
;
82 extern NTVDM_SETTINGS GlobalSettings
;
84 // Command line of NTVDM
86 extern WCHAR
** NtVdmArgv
;
88 extern HWND hConsoleWnd
;
91 /* FUNCTIONS ******************************************************************/
96 VOID
DisplayMessage(IN LPCWSTR Format
, ...);
99 CreateVdmMenu(HANDLE ConOutHandle
);
101 DestroyVdmMenu(VOID
);
103 BOOL
ConsoleAttach(VOID
);
104 VOID
ConsoleDetach(VOID
);
105 VOID
MenuEventHandler(PMENU_EVENT_RECORD MenuEvent
);
106 VOID
FocusEventHandler(PFOCUS_EVENT_RECORD FocusEvent
);