ReactOS  0.4.13-dev-482-ge57f103
ntvdm.h
Go to the documentation of this file.
1 /*
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>
7  */
8 
9 #ifndef _NTVDM_H_
10 #define _NTVDM_H_
11 
12 /* INCLUDES *******************************************************************/
13 
14 #include <stdio.h>
15 #include <stdarg.h>
16 #include <wchar.h>
17 
18 /* PSDK/NDK Headers */
19 #define WIN32_NO_STATUS
20 #include <windef.h>
21 #include <winbase.h>
22 #include <wingdi.h>
23 #include <wincon.h>
24 #include <winnls.h>
25 #include <winreg.h>
26 #include <winuser.h>
27 #include <commdlg.h>
28 
29 #include <subsys/win/vdm.h>
30 
31 // Do not include stuff that is only defined
32 // for backwards compatibility in nt_vdd.h
33 #define NO_NTVDD_COMPAT
34 #include <vddsvc.h>
35 
37 
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>
44 
45 /* PSEH for SEH Support */
46 #include <pseh/pseh2.h>
47 
48 /*
49  * Activate this line if you want to run NTVDM in standalone mode with:
50  * ntvdm.exe <program>
51  */
52 // #define STANDALONE
53 
54 /*
55  * Activate this line for Win2k compliancy
56  */
57 // #define WIN2K_COMPLIANT
58 
59 /*
60  * Activate this line if you want advanced hardcoded debug facilities
61  * (called interrupts, etc...), that break PC-AT compatibility.
62  * USE AT YOUR OWN RISK! (disabled by default)
63  */
64 // #define ADVANCED_DEBUGGING
65 
66 #ifdef ADVANCED_DEBUGGING
67 #define ADVANCED_DEBUGGING_LEVEL 1
68 #endif
69 
70 #define NULL32 0
71 
72 /* VARIABLES ******************************************************************/
73 
74 typedef struct _NTVDM_SETTINGS
75 {
81 
83 
84 // Command line of NTVDM
85 extern INT NtVdmArgc;
86 extern WCHAR** NtVdmArgv;
87 
88 extern HWND hConsoleWnd;
89 
90 
91 /* FUNCTIONS ******************************************************************/
92 
93 /*
94  * Interface functions
95  */
96 typedef VOID (*CHAR_PRINT)(IN CHAR Character);
99  IN LPCSTR Format, ...);
100 
101 /*static*/ VOID
103 
106 VOID ConsoleReattach(HANDLE ConOutHandle);
107 BOOL IsConsoleHandle(HANDLE hHandle);
110 
111 #endif // _NTVDM_H_
112 
113 /* EOF */
WCHAR ** NtVdmArgv
Definition: ntvdm.c:29
#define IN
Definition: typedefs.h:38
VOID ConsoleReattach(HANDLE ConOutHandle)
Definition: console.c:435
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
char CHAR
Definition: xmlstorage.h:175
VOID(* CHAR_PRINT)(IN CHAR Character)
Definition: ntvdm.h:96
VOID MenuEventHandler(PMENU_EVENT_RECORD MenuEvent)
Definition: console.c:527
int32_t INT
Definition: typedefs.h:56
ANSI_STRING RomFiles
Definition: ntvdm.h:77
VOID PrintMessageAnsi(IN CHAR_PRINT CharPrint, IN LPCSTR Format,...)
Definition: ntvdm.c:409
unsigned int BOOL
Definition: ntddk_ex.h:94
struct _NTVDM_SETTINGS * PNTVDM_SETTINGS
const char * LPCSTR
Definition: xmlstorage.h:183
UNICODE_STRING FloppyDisks[2]
Definition: ntvdm.h:78
UNICODE_STRING HardDisks[4]
Definition: ntvdm.h:79
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define WINAPI
Definition: msvc.h:8
NTVDM_SETTINGS GlobalSettings
Definition: ntvdm.c:25
unsigned long DWORD
Definition: ntddk_ex.h:95
#define VOID
Definition: acefi.h:82
VOID UpdateVdmMenuDisks(VOID)
Definition: console.c:146
HWND hConsoleWnd
Definition: console.c:20
ANSI_STRING BiosFileName
Definition: ntvdm.h:76
VOID FocusEventHandler(PFOCUS_EVENT_RECORD FocusEvent)
Definition: console.c:600
VOID DisplayMessage(IN LPCWSTR Format,...)
Definition: ntvdm.c:353
BOOL IsConsoleHandle(HANDLE hHandle)
Definition: console.c:503
INT NtVdmArgc
Definition: ntvdm.c:28
VOID ConsoleDetach(VOID)
Definition: console.c:424
BOOL ConsoleAttach(VOID)
Definition: console.c:398
struct _NTVDM_SETTINGS NTVDM_SETTINGS
DWORD WINAPI SetLastConsoleEventActive(VOID)
Definition: console.c:3142