55 RtlInitEmptyAnsiString(&
Settings->BiosFileName,
NULL, 0);
112 DPRINT1(
"Floppy Disk %d -- '%wZ' already configured\n", DiskNumber, &
Settings->FloppyDisks[DiskNumber]);
119 RtlInitEmptyUnicodeString(&
Settings->FloppyDisks[DiskNumber],
NULL, 0);
148 DPRINT1(
"Hard Disk %d -- '%wZ' already configured\n", DiskNumber, &
Settings->HardDisks[DiskNumber]);
155 RtlInitEmptyUnicodeString(&
Settings->HardDisks[DiskNumber],
NULL, 0);
277 DPRINT1(
"NTVDM registry settings cannot be fully initialized, using default ones. Status = 0x%08lx\n",
Status);
313 #include "./console/console.c" 328 DPRINT1(
"Shutdown is ongoing...\n");
339 MustShutdown = MustShutdown || Immediate;
351 DPRINT1(
"\n\n\nNTVDM - Exiting...\n\n\n");
362 #ifndef WIN2K_COMPLIANT 363 WCHAR StaticBuffer[256];
373 #ifndef WIN2K_COMPLIANT 387 Format =
L"DisplayMessage()\nOriginal message is too long and allocating an auxiliary buffer failed.";
404 #ifndef WIN2K_COMPLIANT 419 static CHAR CurChar = 0;
422 #ifndef WIN2K_COMPLIANT 423 CHAR StaticBuffer[256];
433 #ifndef WIN2K_COMPLIANT 447 Format =
"DisplayMessageAnsi()\nOriginal message is too long and allocating an auxiliary buffer failed.";
467 if (*
str ==
'\n' && CurChar !=
'\r')
474 #ifndef WIN2K_COMPLIANT 489 wprintf(
L"\nReactOS Virtual DOS Machine\n\n" 490 L"Usage: NTVDM <executable> [<parameters>]\n");
515 #ifdef ADVANCED_DEBUGGING 519 printf(
"Waiting for debugger (10 secs)..");
535 "NTVDM - Starting...\n" 536 "Command Line: '%s'\n" 575 wprintf(
L"FATAL: Could not retrieve NTVDM path.\n");
588 wprintf(
L"FATAL: A problem occurred when trying to initialize the console.\n");
595 wprintf(
L"FATAL: Failed to initialize the emulator.\n");
603 wprintf(
L"FATAL: Failed to initialize the VDM BIOS.\n");
BOOL WINAPI IsDebuggerPresent(VOID)
VOID DisplayMessage(IN LPCWSTR Format,...)
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
NTSYSAPI NTSTATUS WINAPI RtlQueryRegistryValues(ULONG, PCWSTR, PRTL_QUERY_REGISTRY_TABLE, PVOID, PVOID)
static NTSTATUS NTAPI NtVdmConfigureRom(IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext)
BOOLEAN ConsoleInit(void)
ACPI_SIZE strlen(const char *String)
IN BOOLEAN OUT PSTR Buffer
VOID PrintMessageAnsi(IN CHAR_PRINT CharPrint, IN LPCSTR Format,...)
NTSTRSAFEVAPI RtlStringCchPrintfW(_Out_writes_(cchDest) _Always_(_Post_z_) NTSTRSAFE_PWSTR pszDest, _In_ size_t cchDest, _In_ _Printf_format_string_ NTSTRSAFE_PCWSTR pszFormat,...)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
VOID(* CHAR_PRINT)(IN CHAR Character)
BOOLEAN DosShutdown(BOOLEAN Immediate)
VOID WINAPI ExitProcess(IN UINT uExitCode)
INT wmain(INT argc, WCHAR *argv[])
DWORD WINAPI GetLastError(VOID)
#define RTL_QUERY_REGISTRY_NOEXPAND
WCHAR NtVdmPath[MAX_PATH]
#define RTL_REGISTRY_CONTROL
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _Out_opt_ PULONG _Out_opt_ PULONG ValueType
static BOOL LoadGlobalSettings(IN PNTVDM_SETTINGS Settings)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_POWER_POLICY_IDLE_SETTINGS Settings
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
VOID NTAPI DbgBreakPoint(VOID)
struct _NTVDM_SETTINGS * PNTVDM_SETTINGS
_In_ PCWSTR _Inout_ _At_ QueryTable EntryContext
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
VOID VdmShutdown(BOOLEAN Immediate)
#define NtCurrentProcess()
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
static NTSTATUS NTAPI NtVdmConfigureBios(IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext)
BOOLEAN EmulatorInitialize(HANDLE ConsoleInput, HANDLE ConsoleOutput)
int WINAPI MessageBoxW(_In_opt_ HWND, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_ UINT)
#define NT_SUCCESS(StatCode)
_In_ GUID _In_ PVOID ValueData
NTSYSAPI VOID NTAPI RtlFreeAnsiString(PANSI_STRING AnsiString)
static NTSTATUS NTAPI NtVdmConfigureHDD(IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
LPSTR WINAPI GetCommandLineA(VOID)
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
VOID EmulatorCleanup(VOID)
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
static const WCHAR Cleanup[]
static RTL_QUERY_REGISTRY_TABLE NtVdmConfigurationTable[]
VOID EmulatorTerminate(VOID)
_Check_return_ _CRTIMP int __cdecl _vscwprintf(_In_z_ _Printf_format_string_ const wchar_t *_Format, va_list _ArgList)
_Check_return_ _CRTIMP int __cdecl _vscprintf(_In_z_ _Printf_format_string_ const char *_Format, va_list _ArgList)
static VOID ConsoleCleanup(VOID)
_CRTIMP int __cdecl _vsnwprintf(wchar_t *_Dest, size_t _Count, const wchar_t *_Format, va_list _Args)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
static HANDLE ConsoleOutput
BOOLEAN BiosInitialize(IN LPCSTR BiosFileName, IN LPCSTR RomFiles OPTIONAL)
#define RtlZeroMemory(Destination, Length)
static VOID FreeGlobalSettings(IN PNTVDM_SETTINGS Settings)
static NTSTATUS NTAPI NtVdmConfigureFloppy(IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext)
NTVDM_SETTINGS GlobalSettings
NTSTATUS NTAPI NtQueryInformationProcess(_In_ HANDLE ProcessHandle, _In_ PROCESSINFOCLASS ProcessInformationClass, _Out_ PVOID ProcessInformation, _In_ ULONG ProcessInformationLength, _Out_opt_ PULONG ReturnLength)
#define ERROR_INSUFFICIENT_BUFFER
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG ValueLength