diff --git a/binaries/bluepill.sys b/binaries/bluepill.sys
new file mode 100644
index 0000000..c9fc14a
Binary files /dev/null and b/binaries/bluepill.sys differ
diff --git a/demo/x64/Release/bluepill.obj b/demo/x64/Release/bluepill.obj
deleted file mode 100644
index f516c99..0000000
Binary files a/demo/x64/Release/bluepill.obj and /dev/null differ
diff --git a/demo/x64/Release/demo.Build.CppClean.log b/demo/x64/Release/demo.Build.CppClean.log
deleted file mode 100644
index 5d403ca..0000000
--- a/demo/x64/Release/demo.Build.CppClean.log
+++ /dev/null
@@ -1,18 +0,0 @@
-c:\users\_xeroxz\desktop\bluepill\demo\x64\release\vc142.pdb
-c:\users\_xeroxz\desktop\bluepill\demo\x64\release\vdm_ctx.obj
-c:\users\_xeroxz\desktop\bluepill\demo\x64\release\main.obj
-c:\users\_xeroxz\desktop\bluepill\demo\x64\release\bluepill.obj
-c:\users\_xeroxz\desktop\bluepill\x64\release\demo.ipdb
-c:\users\_xeroxz\desktop\bluepill\x64\release\demo.iobj
-c:\users\_xeroxz\desktop\bluepill\x64\release\demo.exe
-c:\users\_xeroxz\desktop\bluepill\x64\release\demo.pdb
-c:\users\_xeroxz\desktop\bluepill\demo\x64\release\hypercall.obj
-c:\users\_xeroxz\desktop\bluepill\demo\x64\release\demo.tlog\cl.command.1.tlog
-c:\users\_xeroxz\desktop\bluepill\demo\x64\release\demo.tlog\cl.read.1.tlog
-c:\users\_xeroxz\desktop\bluepill\demo\x64\release\demo.tlog\cl.write.1.tlog
-c:\users\_xeroxz\desktop\bluepill\demo\x64\release\demo.tlog\demo.write.1u.tlog
-c:\users\_xeroxz\desktop\bluepill\demo\x64\release\demo.tlog\link.command.1.tlog
-c:\users\_xeroxz\desktop\bluepill\demo\x64\release\demo.tlog\link.read.1.tlog
-c:\users\_xeroxz\desktop\bluepill\demo\x64\release\demo.tlog\link.write.1.tlog
-c:\users\_xeroxz\desktop\bluepill\demo\x64\release\demo.tlog\masm.read.1u.tlog
-c:\users\_xeroxz\desktop\bluepill\demo\x64\release\demo.tlog\masm.write.1u.tlog
diff --git a/demo/x64/Release/demo.exe.recipe b/demo/x64/Release/demo.exe.recipe
deleted file mode 100644
index f08fee7..0000000
--- a/demo/x64/Release/demo.exe.recipe
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- C:\Users\_xeroxz\Desktop\bluepill\x64\Release\demo.exe
-
-
-
-
-
-
\ No newline at end of file
diff --git a/demo/x64/Release/demo.log b/demo/x64/Release/demo.log
deleted file mode 100644
index 861f168..0000000
--- a/demo/x64/Release/demo.log
+++ /dev/null
@@ -1,408 +0,0 @@
- Assembling hypercall.asm...
- bluepill.cpp
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(66,1): warning C4005: 'STATUS_WAIT_0': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2510): message : see previous definition of 'STATUS_WAIT_0'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(222,1): warning C4005: 'STATUS_ABANDONED_WAIT_0': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2511): message : see previous definition of 'STATUS_ABANDONED_WAIT_0'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(245,1): warning C4005: 'STATUS_USER_APC': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2512): message : see previous definition of 'STATUS_USER_APC'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(281,1): warning C4005: 'STATUS_TIMEOUT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2513): message : see previous definition of 'STATUS_TIMEOUT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(290,1): warning C4005: 'STATUS_PENDING': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2514): message : see previous definition of 'STATUS_PENDING'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(737,1): warning C4005: 'DBG_EXCEPTION_HANDLED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2515): message : see previous definition of 'DBG_EXCEPTION_HANDLED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(746,1): warning C4005: 'DBG_CONTINUE': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2516): message : see previous definition of 'DBG_CONTINUE'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(821,1): warning C4005: 'STATUS_SEGMENT_NOTIFICATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2517): message : see previous definition of 'STATUS_SEGMENT_NOTIFICATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(984,1): warning C4005: 'STATUS_FATAL_APP_EXIT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2518): message : see previous definition of 'STATUS_FATAL_APP_EXIT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1304,1): warning C4005: 'DBG_REPLY_LATER': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2519): message : see previous definition of 'DBG_REPLY_LATER'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1322,1): warning C4005: 'DBG_TERMINATE_THREAD': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2520): message : see previous definition of 'DBG_TERMINATE_THREAD'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1331,1): warning C4005: 'DBG_TERMINATE_PROCESS': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2521): message : see previous definition of 'DBG_TERMINATE_PROCESS'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1340,1): warning C4005: 'DBG_CONTROL_C': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2522): message : see previous definition of 'DBG_CONTROL_C'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1349,1): warning C4005: 'DBG_PRINTEXCEPTION_C': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2523): message : see previous definition of 'DBG_PRINTEXCEPTION_C'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1358,1): warning C4005: 'DBG_RIPEXCEPTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2524): message : see previous definition of 'DBG_RIPEXCEPTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1367,1): warning C4005: 'DBG_CONTROL_BREAK': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2525): message : see previous definition of 'DBG_CONTROL_BREAK'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1376,1): warning C4005: 'DBG_COMMAND_EXCEPTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2526): message : see previous definition of 'DBG_COMMAND_EXCEPTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1385,1): warning C4005: 'DBG_PRINTEXCEPTION_WIDE_C': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2527): message : see previous definition of 'DBG_PRINTEXCEPTION_WIDE_C'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1417,1): warning C4005: 'STATUS_GUARD_PAGE_VIOLATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2528): message : see previous definition of 'STATUS_GUARD_PAGE_VIOLATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1428,1): warning C4005: 'STATUS_DATATYPE_MISALIGNMENT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2529): message : see previous definition of 'STATUS_DATATYPE_MISALIGNMENT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1439,1): warning C4005: 'STATUS_BREAKPOINT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2530): message : see previous definition of 'STATUS_BREAKPOINT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1450,1): warning C4005: 'STATUS_SINGLE_STEP': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2531): message : see previous definition of 'STATUS_SINGLE_STEP'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1753,1): warning C4005: 'STATUS_LONGJUMP': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2532): message : see previous definition of 'STATUS_LONGJUMP'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1780,1): warning C4005: 'STATUS_UNWIND_CONSOLIDATE': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2533): message : see previous definition of 'STATUS_UNWIND_CONSOLIDATE'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1884,1): warning C4005: 'DBG_EXCEPTION_NOT_HANDLED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2534): message : see previous definition of 'DBG_EXCEPTION_NOT_HANDLED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2030,1): warning C4005: 'STATUS_ACCESS_VIOLATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2535): message : see previous definition of 'STATUS_ACCESS_VIOLATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2039,1): warning C4005: 'STATUS_IN_PAGE_ERROR': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2536): message : see previous definition of 'STATUS_IN_PAGE_ERROR'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2057,1): warning C4005: 'STATUS_INVALID_HANDLE': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2537): message : see previous definition of 'STATUS_INVALID_HANDLE'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2102,1): warning C4005: 'STATUS_INVALID_PARAMETER': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2538): message : see previous definition of 'STATUS_INVALID_PARAMETER'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2202,1): warning C4005: 'STATUS_NO_MEMORY': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2539): message : see previous definition of 'STATUS_NO_MEMORY'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2259,1): warning C4005: 'STATUS_ILLEGAL_INSTRUCTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2540): message : see previous definition of 'STATUS_ILLEGAL_INSTRUCTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2340,1): warning C4005: 'STATUS_NONCONTINUABLE_EXCEPTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2541): message : see previous definition of 'STATUS_NONCONTINUABLE_EXCEPTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2349,1): warning C4005: 'STATUS_INVALID_DISPOSITION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2542): message : see previous definition of 'STATUS_INVALID_DISPOSITION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3282,1): warning C4005: 'STATUS_ARRAY_BOUNDS_EXCEEDED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2543): message : see previous definition of 'STATUS_ARRAY_BOUNDS_EXCEEDED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3292,1): warning C4005: 'STATUS_FLOAT_DENORMAL_OPERAND': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2544): message : see previous definition of 'STATUS_FLOAT_DENORMAL_OPERAND'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3302,1): warning C4005: 'STATUS_FLOAT_DIVIDE_BY_ZERO': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2545): message : see previous definition of 'STATUS_FLOAT_DIVIDE_BY_ZERO'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3312,1): warning C4005: 'STATUS_FLOAT_INEXACT_RESULT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2546): message : see previous definition of 'STATUS_FLOAT_INEXACT_RESULT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3322,1): warning C4005: 'STATUS_FLOAT_INVALID_OPERATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2547): message : see previous definition of 'STATUS_FLOAT_INVALID_OPERATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3332,1): warning C4005: 'STATUS_FLOAT_OVERFLOW': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2548): message : see previous definition of 'STATUS_FLOAT_OVERFLOW'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3342,1): warning C4005: 'STATUS_FLOAT_STACK_CHECK': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2549): message : see previous definition of 'STATUS_FLOAT_STACK_CHECK'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3352,1): warning C4005: 'STATUS_FLOAT_UNDERFLOW': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2550): message : see previous definition of 'STATUS_FLOAT_UNDERFLOW'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3362,1): warning C4005: 'STATUS_INTEGER_DIVIDE_BY_ZERO': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2551): message : see previous definition of 'STATUS_INTEGER_DIVIDE_BY_ZERO'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3372,1): warning C4005: 'STATUS_INTEGER_OVERFLOW': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2552): message : see previous definition of 'STATUS_INTEGER_OVERFLOW'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3382,1): warning C4005: 'STATUS_PRIVILEGED_INSTRUCTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2553): message : see previous definition of 'STATUS_PRIVILEGED_INSTRUCTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4328,1): warning C4005: 'STATUS_STACK_OVERFLOW': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2554): message : see previous definition of 'STATUS_STACK_OVERFLOW'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4845,1): warning C4005: 'STATUS_DLL_NOT_FOUND': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2555): message : see previous definition of 'STATUS_DLL_NOT_FOUND'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4874,1): warning C4005: 'STATUS_ORDINAL_NOT_FOUND': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2556): message : see previous definition of 'STATUS_ORDINAL_NOT_FOUND'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4884,1): warning C4005: 'STATUS_ENTRYPOINT_NOT_FOUND': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2557): message : see previous definition of 'STATUS_ENTRYPOINT_NOT_FOUND'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4894,1): warning C4005: 'STATUS_CONTROL_C_EXIT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2558): message : see previous definition of 'STATUS_CONTROL_C_EXIT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4972,1): warning C4005: 'STATUS_DLL_INIT_FAILED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2559): message : see previous definition of 'STATUS_DLL_INIT_FAILED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(5969,1): warning C4005: 'STATUS_CONTROL_STACK_VIOLATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2560): message : see previous definition of 'STATUS_CONTROL_STACK_VIOLATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(7527,1): warning C4005: 'STATUS_FLOAT_MULTIPLE_FAULTS': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2561): message : see previous definition of 'STATUS_FLOAT_MULTIPLE_FAULTS'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(7537,1): warning C4005: 'STATUS_FLOAT_MULTIPLE_TRAPS': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2562): message : see previous definition of 'STATUS_FLOAT_MULTIPLE_TRAPS'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(7669,1): warning C4005: 'STATUS_REG_NAT_CONSUMPTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2563): message : see previous definition of 'STATUS_REG_NAT_CONSUMPTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(8652,1): warning C4005: 'STATUS_HEAP_CORRUPTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2564): message : see previous definition of 'STATUS_HEAP_CORRUPTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(8880,1): warning C4005: 'STATUS_STACK_BUFFER_OVERRUN': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2565): message : see previous definition of 'STATUS_STACK_BUFFER_OVERRUN'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(9007,1): warning C4005: 'STATUS_INVALID_CRUNTIME_PARAMETER': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2566): message : see previous definition of 'STATUS_INVALID_CRUNTIME_PARAMETER'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(9070,1): warning C4005: 'STATUS_ASSERTION_FAILURE': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2567): message : see previous definition of 'STATUS_ASSERTION_FAILURE'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(9988,1): warning C4005: 'STATUS_ENCLAVE_VIOLATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2568): message : see previous definition of 'STATUS_ENCLAVE_VIOLATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(10415,1): warning C4005: 'STATUS_INTERRUPTED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2569): message : see previous definition of 'STATUS_INTERRUPTED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(10424,1): warning C4005: 'STATUS_THREAD_NOT_RUNNING': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2570): message : see previous definition of 'STATUS_THREAD_NOT_RUNNING'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(10718,1): warning C4005: 'STATUS_ALREADY_REGISTERED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2571): message : see previous definition of 'STATUS_ALREADY_REGISTERED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(14352,1): warning C4005: 'STATUS_SXS_EARLY_DEACTIVATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2573): message : see previous definition of 'STATUS_SXS_EARLY_DEACTIVATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(14361,1): warning C4005: 'STATUS_SXS_INVALID_DEACTIVATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2574): message : see previous definition of 'STATUS_SXS_INVALID_DEACTIVATION'
-C:\Users\_xeroxz\Desktop\bluepill\demo\util\util.hpp(65,34): warning C4018: '<': signed/unsigned mismatch
-C:\Users\_xeroxz\Desktop\bluepill\demo\util\util.hpp(240,24): warning C4018: '<': signed/unsigned mismatch
-C:\Users\_xeroxz\Desktop\bluepill\demo\util\util.hpp(252,45): warning C4312: 'type cast': conversion from 'DWORD' to 'void *' of greater size
- main.cpp
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(66,1): warning C4005: 'STATUS_WAIT_0': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2510): message : see previous definition of 'STATUS_WAIT_0'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(222,1): warning C4005: 'STATUS_ABANDONED_WAIT_0': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2511): message : see previous definition of 'STATUS_ABANDONED_WAIT_0'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(245,1): warning C4005: 'STATUS_USER_APC': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2512): message : see previous definition of 'STATUS_USER_APC'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(281,1): warning C4005: 'STATUS_TIMEOUT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2513): message : see previous definition of 'STATUS_TIMEOUT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(290,1): warning C4005: 'STATUS_PENDING': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2514): message : see previous definition of 'STATUS_PENDING'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(737,1): warning C4005: 'DBG_EXCEPTION_HANDLED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2515): message : see previous definition of 'DBG_EXCEPTION_HANDLED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(746,1): warning C4005: 'DBG_CONTINUE': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2516): message : see previous definition of 'DBG_CONTINUE'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(821,1): warning C4005: 'STATUS_SEGMENT_NOTIFICATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2517): message : see previous definition of 'STATUS_SEGMENT_NOTIFICATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(984,1): warning C4005: 'STATUS_FATAL_APP_EXIT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2518): message : see previous definition of 'STATUS_FATAL_APP_EXIT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1304,1): warning C4005: 'DBG_REPLY_LATER': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2519): message : see previous definition of 'DBG_REPLY_LATER'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1322,1): warning C4005: 'DBG_TERMINATE_THREAD': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2520): message : see previous definition of 'DBG_TERMINATE_THREAD'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1331,1): warning C4005: 'DBG_TERMINATE_PROCESS': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2521): message : see previous definition of 'DBG_TERMINATE_PROCESS'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1340,1): warning C4005: 'DBG_CONTROL_C': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2522): message : see previous definition of 'DBG_CONTROL_C'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1349,1): warning C4005: 'DBG_PRINTEXCEPTION_C': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2523): message : see previous definition of 'DBG_PRINTEXCEPTION_C'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1358,1): warning C4005: 'DBG_RIPEXCEPTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2524): message : see previous definition of 'DBG_RIPEXCEPTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1367,1): warning C4005: 'DBG_CONTROL_BREAK': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2525): message : see previous definition of 'DBG_CONTROL_BREAK'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1376,1): warning C4005: 'DBG_COMMAND_EXCEPTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2526): message : see previous definition of 'DBG_COMMAND_EXCEPTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1385,1): warning C4005: 'DBG_PRINTEXCEPTION_WIDE_C': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2527): message : see previous definition of 'DBG_PRINTEXCEPTION_WIDE_C'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1417,1): warning C4005: 'STATUS_GUARD_PAGE_VIOLATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2528): message : see previous definition of 'STATUS_GUARD_PAGE_VIOLATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1428,1): warning C4005: 'STATUS_DATATYPE_MISALIGNMENT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2529): message : see previous definition of 'STATUS_DATATYPE_MISALIGNMENT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1439,1): warning C4005: 'STATUS_BREAKPOINT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2530): message : see previous definition of 'STATUS_BREAKPOINT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1450,1): warning C4005: 'STATUS_SINGLE_STEP': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2531): message : see previous definition of 'STATUS_SINGLE_STEP'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1753,1): warning C4005: 'STATUS_LONGJUMP': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2532): message : see previous definition of 'STATUS_LONGJUMP'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1780,1): warning C4005: 'STATUS_UNWIND_CONSOLIDATE': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2533): message : see previous definition of 'STATUS_UNWIND_CONSOLIDATE'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1884,1): warning C4005: 'DBG_EXCEPTION_NOT_HANDLED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2534): message : see previous definition of 'DBG_EXCEPTION_NOT_HANDLED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2030,1): warning C4005: 'STATUS_ACCESS_VIOLATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2535): message : see previous definition of 'STATUS_ACCESS_VIOLATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2039,1): warning C4005: 'STATUS_IN_PAGE_ERROR': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2536): message : see previous definition of 'STATUS_IN_PAGE_ERROR'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2057,1): warning C4005: 'STATUS_INVALID_HANDLE': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2537): message : see previous definition of 'STATUS_INVALID_HANDLE'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2102,1): warning C4005: 'STATUS_INVALID_PARAMETER': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2538): message : see previous definition of 'STATUS_INVALID_PARAMETER'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2202,1): warning C4005: 'STATUS_NO_MEMORY': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2539): message : see previous definition of 'STATUS_NO_MEMORY'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2259,1): warning C4005: 'STATUS_ILLEGAL_INSTRUCTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2540): message : see previous definition of 'STATUS_ILLEGAL_INSTRUCTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2340,1): warning C4005: 'STATUS_NONCONTINUABLE_EXCEPTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2541): message : see previous definition of 'STATUS_NONCONTINUABLE_EXCEPTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2349,1): warning C4005: 'STATUS_INVALID_DISPOSITION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2542): message : see previous definition of 'STATUS_INVALID_DISPOSITION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3282,1): warning C4005: 'STATUS_ARRAY_BOUNDS_EXCEEDED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2543): message : see previous definition of 'STATUS_ARRAY_BOUNDS_EXCEEDED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3292,1): warning C4005: 'STATUS_FLOAT_DENORMAL_OPERAND': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2544): message : see previous definition of 'STATUS_FLOAT_DENORMAL_OPERAND'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3302,1): warning C4005: 'STATUS_FLOAT_DIVIDE_BY_ZERO': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2545): message : see previous definition of 'STATUS_FLOAT_DIVIDE_BY_ZERO'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3312,1): warning C4005: 'STATUS_FLOAT_INEXACT_RESULT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2546): message : see previous definition of 'STATUS_FLOAT_INEXACT_RESULT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3322,1): warning C4005: 'STATUS_FLOAT_INVALID_OPERATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2547): message : see previous definition of 'STATUS_FLOAT_INVALID_OPERATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3332,1): warning C4005: 'STATUS_FLOAT_OVERFLOW': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2548): message : see previous definition of 'STATUS_FLOAT_OVERFLOW'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3342,1): warning C4005: 'STATUS_FLOAT_STACK_CHECK': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2549): message : see previous definition of 'STATUS_FLOAT_STACK_CHECK'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3352,1): warning C4005: 'STATUS_FLOAT_UNDERFLOW': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2550): message : see previous definition of 'STATUS_FLOAT_UNDERFLOW'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3362,1): warning C4005: 'STATUS_INTEGER_DIVIDE_BY_ZERO': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2551): message : see previous definition of 'STATUS_INTEGER_DIVIDE_BY_ZERO'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3372,1): warning C4005: 'STATUS_INTEGER_OVERFLOW': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2552): message : see previous definition of 'STATUS_INTEGER_OVERFLOW'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3382,1): warning C4005: 'STATUS_PRIVILEGED_INSTRUCTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2553): message : see previous definition of 'STATUS_PRIVILEGED_INSTRUCTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4328,1): warning C4005: 'STATUS_STACK_OVERFLOW': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2554): message : see previous definition of 'STATUS_STACK_OVERFLOW'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4845,1): warning C4005: 'STATUS_DLL_NOT_FOUND': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2555): message : see previous definition of 'STATUS_DLL_NOT_FOUND'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4874,1): warning C4005: 'STATUS_ORDINAL_NOT_FOUND': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2556): message : see previous definition of 'STATUS_ORDINAL_NOT_FOUND'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4884,1): warning C4005: 'STATUS_ENTRYPOINT_NOT_FOUND': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2557): message : see previous definition of 'STATUS_ENTRYPOINT_NOT_FOUND'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4894,1): warning C4005: 'STATUS_CONTROL_C_EXIT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2558): message : see previous definition of 'STATUS_CONTROL_C_EXIT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4972,1): warning C4005: 'STATUS_DLL_INIT_FAILED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2559): message : see previous definition of 'STATUS_DLL_INIT_FAILED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(5969,1): warning C4005: 'STATUS_CONTROL_STACK_VIOLATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2560): message : see previous definition of 'STATUS_CONTROL_STACK_VIOLATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(7527,1): warning C4005: 'STATUS_FLOAT_MULTIPLE_FAULTS': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2561): message : see previous definition of 'STATUS_FLOAT_MULTIPLE_FAULTS'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(7537,1): warning C4005: 'STATUS_FLOAT_MULTIPLE_TRAPS': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2562): message : see previous definition of 'STATUS_FLOAT_MULTIPLE_TRAPS'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(7669,1): warning C4005: 'STATUS_REG_NAT_CONSUMPTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2563): message : see previous definition of 'STATUS_REG_NAT_CONSUMPTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(8652,1): warning C4005: 'STATUS_HEAP_CORRUPTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2564): message : see previous definition of 'STATUS_HEAP_CORRUPTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(8880,1): warning C4005: 'STATUS_STACK_BUFFER_OVERRUN': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2565): message : see previous definition of 'STATUS_STACK_BUFFER_OVERRUN'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(9007,1): warning C4005: 'STATUS_INVALID_CRUNTIME_PARAMETER': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2566): message : see previous definition of 'STATUS_INVALID_CRUNTIME_PARAMETER'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(9070,1): warning C4005: 'STATUS_ASSERTION_FAILURE': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2567): message : see previous definition of 'STATUS_ASSERTION_FAILURE'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(9988,1): warning C4005: 'STATUS_ENCLAVE_VIOLATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2568): message : see previous definition of 'STATUS_ENCLAVE_VIOLATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(10415,1): warning C4005: 'STATUS_INTERRUPTED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2569): message : see previous definition of 'STATUS_INTERRUPTED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(10424,1): warning C4005: 'STATUS_THREAD_NOT_RUNNING': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2570): message : see previous definition of 'STATUS_THREAD_NOT_RUNNING'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(10718,1): warning C4005: 'STATUS_ALREADY_REGISTERED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2571): message : see previous definition of 'STATUS_ALREADY_REGISTERED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(14352,1): warning C4005: 'STATUS_SXS_EARLY_DEACTIVATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2573): message : see previous definition of 'STATUS_SXS_EARLY_DEACTIVATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(14361,1): warning C4005: 'STATUS_SXS_INVALID_DEACTIVATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2574): message : see previous definition of 'STATUS_SXS_INVALID_DEACTIVATION'
-C:\Users\_xeroxz\Desktop\bluepill\demo\util\util.hpp(65,34): warning C4018: '<': signed/unsigned mismatch
-C:\Users\_xeroxz\Desktop\bluepill\demo\util\util.hpp(240,24): warning C4018: '<': signed/unsigned mismatch
-C:\Users\_xeroxz\Desktop\bluepill\demo\util\util.hpp(252,45): warning C4312: 'type cast': conversion from 'DWORD' to 'void *' of greater size
-C:\Users\_xeroxz\Desktop\bluepill\demo\main.cpp(5,1): warning C4326: return type of 'main' should be 'int' instead of 'void'
-C:\Users\_xeroxz\Desktop\bluepill\demo\main.cpp(49,14): warning C4477: 'printf' : format string '%p' requires an argument of type 'void *', but variadic argument 1 has type 'const uintptr_t'
-C:\Users\_xeroxz\Desktop\bluepill\demo\main.cpp(50,14): warning C4477: 'printf' : format string '%p' requires an argument of type 'void *', but variadic argument 1 has type 'const uintptr_t'
- vdm_ctx.cpp
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(66,1): warning C4005: 'STATUS_WAIT_0': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2510): message : see previous definition of 'STATUS_WAIT_0'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(222,1): warning C4005: 'STATUS_ABANDONED_WAIT_0': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2511): message : see previous definition of 'STATUS_ABANDONED_WAIT_0'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(245,1): warning C4005: 'STATUS_USER_APC': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2512): message : see previous definition of 'STATUS_USER_APC'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(281,1): warning C4005: 'STATUS_TIMEOUT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2513): message : see previous definition of 'STATUS_TIMEOUT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(290,1): warning C4005: 'STATUS_PENDING': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2514): message : see previous definition of 'STATUS_PENDING'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(737,1): warning C4005: 'DBG_EXCEPTION_HANDLED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2515): message : see previous definition of 'DBG_EXCEPTION_HANDLED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(746,1): warning C4005: 'DBG_CONTINUE': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2516): message : see previous definition of 'DBG_CONTINUE'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(821,1): warning C4005: 'STATUS_SEGMENT_NOTIFICATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2517): message : see previous definition of 'STATUS_SEGMENT_NOTIFICATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(984,1): warning C4005: 'STATUS_FATAL_APP_EXIT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2518): message : see previous definition of 'STATUS_FATAL_APP_EXIT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1304,1): warning C4005: 'DBG_REPLY_LATER': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2519): message : see previous definition of 'DBG_REPLY_LATER'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1322,1): warning C4005: 'DBG_TERMINATE_THREAD': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2520): message : see previous definition of 'DBG_TERMINATE_THREAD'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1331,1): warning C4005: 'DBG_TERMINATE_PROCESS': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2521): message : see previous definition of 'DBG_TERMINATE_PROCESS'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1340,1): warning C4005: 'DBG_CONTROL_C': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2522): message : see previous definition of 'DBG_CONTROL_C'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1349,1): warning C4005: 'DBG_PRINTEXCEPTION_C': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2523): message : see previous definition of 'DBG_PRINTEXCEPTION_C'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1358,1): warning C4005: 'DBG_RIPEXCEPTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2524): message : see previous definition of 'DBG_RIPEXCEPTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1367,1): warning C4005: 'DBG_CONTROL_BREAK': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2525): message : see previous definition of 'DBG_CONTROL_BREAK'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1376,1): warning C4005: 'DBG_COMMAND_EXCEPTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2526): message : see previous definition of 'DBG_COMMAND_EXCEPTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1385,1): warning C4005: 'DBG_PRINTEXCEPTION_WIDE_C': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2527): message : see previous definition of 'DBG_PRINTEXCEPTION_WIDE_C'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1417,1): warning C4005: 'STATUS_GUARD_PAGE_VIOLATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2528): message : see previous definition of 'STATUS_GUARD_PAGE_VIOLATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1428,1): warning C4005: 'STATUS_DATATYPE_MISALIGNMENT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2529): message : see previous definition of 'STATUS_DATATYPE_MISALIGNMENT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1439,1): warning C4005: 'STATUS_BREAKPOINT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2530): message : see previous definition of 'STATUS_BREAKPOINT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1450,1): warning C4005: 'STATUS_SINGLE_STEP': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2531): message : see previous definition of 'STATUS_SINGLE_STEP'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1753,1): warning C4005: 'STATUS_LONGJUMP': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2532): message : see previous definition of 'STATUS_LONGJUMP'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1780,1): warning C4005: 'STATUS_UNWIND_CONSOLIDATE': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2533): message : see previous definition of 'STATUS_UNWIND_CONSOLIDATE'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(1884,1): warning C4005: 'DBG_EXCEPTION_NOT_HANDLED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2534): message : see previous definition of 'DBG_EXCEPTION_NOT_HANDLED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2030,1): warning C4005: 'STATUS_ACCESS_VIOLATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2535): message : see previous definition of 'STATUS_ACCESS_VIOLATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2039,1): warning C4005: 'STATUS_IN_PAGE_ERROR': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2536): message : see previous definition of 'STATUS_IN_PAGE_ERROR'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2057,1): warning C4005: 'STATUS_INVALID_HANDLE': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2537): message : see previous definition of 'STATUS_INVALID_HANDLE'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2102,1): warning C4005: 'STATUS_INVALID_PARAMETER': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2538): message : see previous definition of 'STATUS_INVALID_PARAMETER'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2202,1): warning C4005: 'STATUS_NO_MEMORY': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2539): message : see previous definition of 'STATUS_NO_MEMORY'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2259,1): warning C4005: 'STATUS_ILLEGAL_INSTRUCTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2540): message : see previous definition of 'STATUS_ILLEGAL_INSTRUCTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2340,1): warning C4005: 'STATUS_NONCONTINUABLE_EXCEPTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2541): message : see previous definition of 'STATUS_NONCONTINUABLE_EXCEPTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(2349,1): warning C4005: 'STATUS_INVALID_DISPOSITION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2542): message : see previous definition of 'STATUS_INVALID_DISPOSITION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3282,1): warning C4005: 'STATUS_ARRAY_BOUNDS_EXCEEDED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2543): message : see previous definition of 'STATUS_ARRAY_BOUNDS_EXCEEDED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3292,1): warning C4005: 'STATUS_FLOAT_DENORMAL_OPERAND': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2544): message : see previous definition of 'STATUS_FLOAT_DENORMAL_OPERAND'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3302,1): warning C4005: 'STATUS_FLOAT_DIVIDE_BY_ZERO': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2545): message : see previous definition of 'STATUS_FLOAT_DIVIDE_BY_ZERO'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3312,1): warning C4005: 'STATUS_FLOAT_INEXACT_RESULT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2546): message : see previous definition of 'STATUS_FLOAT_INEXACT_RESULT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3322,1): warning C4005: 'STATUS_FLOAT_INVALID_OPERATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2547): message : see previous definition of 'STATUS_FLOAT_INVALID_OPERATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3332,1): warning C4005: 'STATUS_FLOAT_OVERFLOW': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2548): message : see previous definition of 'STATUS_FLOAT_OVERFLOW'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3342,1): warning C4005: 'STATUS_FLOAT_STACK_CHECK': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2549): message : see previous definition of 'STATUS_FLOAT_STACK_CHECK'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3352,1): warning C4005: 'STATUS_FLOAT_UNDERFLOW': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2550): message : see previous definition of 'STATUS_FLOAT_UNDERFLOW'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3362,1): warning C4005: 'STATUS_INTEGER_DIVIDE_BY_ZERO': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2551): message : see previous definition of 'STATUS_INTEGER_DIVIDE_BY_ZERO'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3372,1): warning C4005: 'STATUS_INTEGER_OVERFLOW': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2552): message : see previous definition of 'STATUS_INTEGER_OVERFLOW'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(3382,1): warning C4005: 'STATUS_PRIVILEGED_INSTRUCTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2553): message : see previous definition of 'STATUS_PRIVILEGED_INSTRUCTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4328,1): warning C4005: 'STATUS_STACK_OVERFLOW': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2554): message : see previous definition of 'STATUS_STACK_OVERFLOW'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4845,1): warning C4005: 'STATUS_DLL_NOT_FOUND': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2555): message : see previous definition of 'STATUS_DLL_NOT_FOUND'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4874,1): warning C4005: 'STATUS_ORDINAL_NOT_FOUND': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2556): message : see previous definition of 'STATUS_ORDINAL_NOT_FOUND'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4884,1): warning C4005: 'STATUS_ENTRYPOINT_NOT_FOUND': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2557): message : see previous definition of 'STATUS_ENTRYPOINT_NOT_FOUND'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4894,1): warning C4005: 'STATUS_CONTROL_C_EXIT': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2558): message : see previous definition of 'STATUS_CONTROL_C_EXIT'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(4972,1): warning C4005: 'STATUS_DLL_INIT_FAILED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2559): message : see previous definition of 'STATUS_DLL_INIT_FAILED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(5969,1): warning C4005: 'STATUS_CONTROL_STACK_VIOLATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2560): message : see previous definition of 'STATUS_CONTROL_STACK_VIOLATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(7527,1): warning C4005: 'STATUS_FLOAT_MULTIPLE_FAULTS': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2561): message : see previous definition of 'STATUS_FLOAT_MULTIPLE_FAULTS'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(7537,1): warning C4005: 'STATUS_FLOAT_MULTIPLE_TRAPS': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2562): message : see previous definition of 'STATUS_FLOAT_MULTIPLE_TRAPS'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(7669,1): warning C4005: 'STATUS_REG_NAT_CONSUMPTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2563): message : see previous definition of 'STATUS_REG_NAT_CONSUMPTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(8652,1): warning C4005: 'STATUS_HEAP_CORRUPTION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2564): message : see previous definition of 'STATUS_HEAP_CORRUPTION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(8880,1): warning C4005: 'STATUS_STACK_BUFFER_OVERRUN': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2565): message : see previous definition of 'STATUS_STACK_BUFFER_OVERRUN'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(9007,1): warning C4005: 'STATUS_INVALID_CRUNTIME_PARAMETER': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2566): message : see previous definition of 'STATUS_INVALID_CRUNTIME_PARAMETER'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(9070,1): warning C4005: 'STATUS_ASSERTION_FAILURE': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2567): message : see previous definition of 'STATUS_ASSERTION_FAILURE'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(9988,1): warning C4005: 'STATUS_ENCLAVE_VIOLATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2568): message : see previous definition of 'STATUS_ENCLAVE_VIOLATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(10415,1): warning C4005: 'STATUS_INTERRUPTED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2569): message : see previous definition of 'STATUS_INTERRUPTED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(10424,1): warning C4005: 'STATUS_THREAD_NOT_RUNNING': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2570): message : see previous definition of 'STATUS_THREAD_NOT_RUNNING'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(10718,1): warning C4005: 'STATUS_ALREADY_REGISTERED': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2571): message : see previous definition of 'STATUS_ALREADY_REGISTERED'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(14352,1): warning C4005: 'STATUS_SXS_EARLY_DEACTIVATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2573): message : see previous definition of 'STATUS_SXS_EARLY_DEACTIVATION'
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\ntstatus.h(14361,1): warning C4005: 'STATUS_SXS_INVALID_DEACTIVATION': macro redefinition
-C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(2574): message : see previous definition of 'STATUS_SXS_INVALID_DEACTIVATION'
-C:\Users\_xeroxz\Desktop\bluepill\demo\util\util.hpp(65,34): warning C4018: '<': signed/unsigned mismatch
-C:\Users\_xeroxz\Desktop\bluepill\demo\util\util.hpp(240,24): warning C4018: '<': signed/unsigned mismatch
-C:\Users\_xeroxz\Desktop\bluepill\demo\util\util.hpp(252,45): warning C4312: 'type cast': conversion from 'DWORD' to 'void *' of greater size
-C:\Users\_xeroxz\Desktop\bluepill\demo\vdm_ctx\vdm_ctx.cpp(23,5): warning C4311: 'reinterpret_cast': pointer truncation from 'void *' to 'uint32_t'
-C:\Users\_xeroxz\Desktop\bluepill\demo\vdm_ctx\vdm_ctx.cpp(23,5): warning C4302: 'reinterpret_cast': truncation from 'void *' to 'uint32_t'
-C:\Users\_xeroxz\Desktop\bluepill\demo\vdm_ctx\vdm_ctx.cpp(50,15): warning C4312: 'type cast': conversion from 'uint32_t' to 'HANDLE' of greater size
- Generating code
- Previous IPDB not found, fall back to full compilation.
- All 353 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
- Finished generating code
- demo.vcxproj -> C:\Users\_xeroxz\Desktop\bluepill\x64\Release\demo.exe
diff --git a/demo/x64/Release/demo.tlog/CL.command.1.tlog b/demo/x64/Release/demo.tlog/CL.command.1.tlog
deleted file mode 100644
index 14528f6..0000000
Binary files a/demo/x64/Release/demo.tlog/CL.command.1.tlog and /dev/null differ
diff --git a/demo/x64/Release/demo.tlog/CL.read.1.tlog b/demo/x64/Release/demo.tlog/CL.read.1.tlog
deleted file mode 100644
index abb2b7b..0000000
Binary files a/demo/x64/Release/demo.tlog/CL.read.1.tlog and /dev/null differ
diff --git a/demo/x64/Release/demo.tlog/CL.write.1.tlog b/demo/x64/Release/demo.tlog/CL.write.1.tlog
deleted file mode 100644
index c30f573..0000000
Binary files a/demo/x64/Release/demo.tlog/CL.write.1.tlog and /dev/null differ
diff --git a/demo/x64/Release/demo.tlog/Masm.read.1u.tlog b/demo/x64/Release/demo.tlog/Masm.read.1u.tlog
deleted file mode 100644
index b46f3e3..0000000
Binary files a/demo/x64/Release/demo.tlog/Masm.read.1u.tlog and /dev/null differ
diff --git a/demo/x64/Release/demo.tlog/Masm.write.1u.tlog b/demo/x64/Release/demo.tlog/Masm.write.1u.tlog
deleted file mode 100644
index 0c7aa0a..0000000
Binary files a/demo/x64/Release/demo.tlog/Masm.write.1u.tlog and /dev/null differ
diff --git a/demo/x64/Release/demo.tlog/demo.lastbuildstate b/demo/x64/Release/demo.tlog/demo.lastbuildstate
deleted file mode 100644
index 4e7ce1f..0000000
--- a/demo/x64/Release/demo.tlog/demo.lastbuildstate
+++ /dev/null
@@ -1,2 +0,0 @@
-PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.28.29333:TargetPlatformVersion=10.0.19041.0:
-Release|x64|C:\Users\_xeroxz\Desktop\bluepill\|
diff --git a/demo/x64/Release/demo.tlog/demo.write.1u.tlog b/demo/x64/Release/demo.tlog/demo.write.1u.tlog
deleted file mode 100644
index 7e5404d..0000000
Binary files a/demo/x64/Release/demo.tlog/demo.write.1u.tlog and /dev/null differ
diff --git a/demo/x64/Release/demo.tlog/link.command.1.tlog b/demo/x64/Release/demo.tlog/link.command.1.tlog
deleted file mode 100644
index febf6f1..0000000
Binary files a/demo/x64/Release/demo.tlog/link.command.1.tlog and /dev/null differ
diff --git a/demo/x64/Release/demo.tlog/link.read.1.tlog b/demo/x64/Release/demo.tlog/link.read.1.tlog
deleted file mode 100644
index dcd181f..0000000
Binary files a/demo/x64/Release/demo.tlog/link.read.1.tlog and /dev/null differ
diff --git a/demo/x64/Release/demo.tlog/link.write.1.tlog b/demo/x64/Release/demo.tlog/link.write.1.tlog
deleted file mode 100644
index f07fbd4..0000000
Binary files a/demo/x64/Release/demo.tlog/link.write.1.tlog and /dev/null differ
diff --git a/demo/x64/Release/demo.vcxproj.FileListAbsolute.txt b/demo/x64/Release/demo.vcxproj.FileListAbsolute.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/demo/x64/Release/hypercall.obj b/demo/x64/Release/hypercall.obj
deleted file mode 100644
index d29746e..0000000
Binary files a/demo/x64/Release/hypercall.obj and /dev/null differ
diff --git a/demo/x64/Release/main.obj b/demo/x64/Release/main.obj
deleted file mode 100644
index 51bce11..0000000
Binary files a/demo/x64/Release/main.obj and /dev/null differ
diff --git a/demo/x64/Release/vc142.pdb b/demo/x64/Release/vc142.pdb
deleted file mode 100644
index 812dbfe..0000000
Binary files a/demo/x64/Release/vc142.pdb and /dev/null differ
diff --git a/demo/x64/Release/vdm_ctx.obj b/demo/x64/Release/vdm_ctx.obj
deleted file mode 100644
index 36d1828..0000000
Binary files a/demo/x64/Release/vdm_ctx.obj and /dev/null differ
diff --git a/exit_handler.cpp b/exit_handler.cpp
index 4179d1a..10028da 100644
--- a/exit_handler.cpp
+++ b/exit_handler.cpp
@@ -41,29 +41,40 @@ auto exit_handler(hv::pguest_registers regs) -> void
}
case VMX_EXIT_REASON_NMI_WINDOW:
{
- __debugbreak();
vmentry_interrupt_information interrupt{};
interrupt.interruption_type = interruption_type::non_maskable_interrupt;
interrupt.vector = EXCEPTION_NMI;
interrupt.valid = true;
- --g_vcpu->nmi_counter;
__vmx_vmwrite(VMCS_CTRL_VMENTRY_INTERRUPTION_INFORMATION_FIELD, interrupt.flags);
+ __vmx_vmwrite(VMCS_VMEXIT_INTERRUPTION_ERROR_CODE, NULL);
- if (!g_vcpu->nmi_counter) // no more nmi's then disable window exiting...
- {
- ia32_vmx_procbased_ctls_register procbased_ctls;
- ia32_vmx_pinbased_ctls_register pinbased_ctls;
+ ia32_vmx_procbased_ctls_register procbased_ctls;
+ ia32_vmx_pinbased_ctls_register pinbased_ctls;
- __vmx_vmread(VMCS_CTRL_PROCESSOR_BASED_VM_EXECUTION_CONTROLS, &procbased_ctls.flags);
- __vmx_vmread(VMCS_CTRL_PIN_BASED_VM_EXECUTION_CONTROLS, &pinbased_ctls.flags);
+ __vmx_vmread(VMCS_CTRL_PROCESSOR_BASED_VM_EXECUTION_CONTROLS, &procbased_ctls.flags);
+ __vmx_vmread(VMCS_CTRL_PIN_BASED_VM_EXECUTION_CONTROLS, &pinbased_ctls.flags);
- procbased_ctls.nmi_window_exiting = false;
- pinbased_ctls.virtual_nmi = false;
+ procbased_ctls.nmi_window_exiting = false;
+ pinbased_ctls.virtual_nmi = false;
- __vmx_vmwrite(VMCS_CTRL_PROCESSOR_BASED_VM_EXECUTION_CONTROLS, procbased_ctls.flags);
- __vmx_vmwrite(VMCS_CTRL_PIN_BASED_VM_EXECUTION_CONTROLS, pinbased_ctls.flags);
- }
+ __vmx_vmwrite(VMCS_CTRL_PROCESSOR_BASED_VM_EXECUTION_CONTROLS, procbased_ctls.flags);
+ __vmx_vmwrite(VMCS_CTRL_PIN_BASED_VM_EXECUTION_CONTROLS, pinbased_ctls.flags);
+ return; // dont advance rip...
+ }
+ case VMX_EXIT_REASON_EXCEPTION_OR_NMI:
+ {
+ ia32_vmx_procbased_ctls_register procbased_ctls;
+ ia32_vmx_pinbased_ctls_register pinbased_ctls;
+
+ __vmx_vmread(VMCS_CTRL_PROCESSOR_BASED_VM_EXECUTION_CONTROLS, &procbased_ctls.flags);
+ __vmx_vmread(VMCS_CTRL_PIN_BASED_VM_EXECUTION_CONTROLS, &pinbased_ctls.flags);
+
+ procbased_ctls.nmi_window_exiting = true;
+ pinbased_ctls.virtual_nmi = true;
+
+ __vmx_vmwrite(VMCS_CTRL_PROCESSOR_BASED_VM_EXECUTION_CONTROLS, procbased_ctls.flags);
+ __vmx_vmwrite(VMCS_CTRL_PIN_BASED_VM_EXECUTION_CONTROLS, pinbased_ctls.flags);
return; // dont advance rip...
}
case VMX_EXIT_REASON_EXECUTE_XSETBV:
@@ -94,7 +105,9 @@ auto exit_handler(hv::pguest_registers regs) -> void
vmentry_interrupt_information interrupt{};
interrupt.interruption_type = interruption_type::hardware_exception;
interrupt.vector = EXCEPTION_GP_FAULT;
+
interrupt.valid = true;
+ interrupt.deliver_error_code = true;
__vmx_vmwrite(VMCS_CTRL_VMENTRY_INTERRUPTION_INFORMATION_FIELD, interrupt.flags);
__vmx_vmwrite(VMCS_VMEXIT_INTERRUPTION_ERROR_CODE, g_vcpu->error_code);
@@ -123,7 +136,9 @@ auto exit_handler(hv::pguest_registers regs) -> void
vmentry_interrupt_information interrupt{};
interrupt.interruption_type = interruption_type::hardware_exception;
interrupt.vector = EXCEPTION_GP_FAULT;
+
interrupt.valid = true;
+ interrupt.deliver_error_code = true;
__vmx_vmwrite(VMCS_CTRL_VMENTRY_INTERRUPTION_INFORMATION_FIELD, interrupt.flags);
__vmx_vmwrite(VMCS_VMEXIT_INTERRUPTION_ERROR_CODE, g_vcpu->error_code);
@@ -137,11 +152,6 @@ auto exit_handler(hv::pguest_registers regs) -> void
value.high = regs->rdx;
__try
- {
- __writemsr(regs->rcx, value.value);
- break;
- }
- __except (EXCEPTION_EXECUTE_HANDLER)
{
/*
EXCEPTION WARNING:
@@ -149,10 +159,17 @@ auto exit_handler(hv::pguest_registers regs) -> void
If the value in ECX specifies a reserved or unimplemented MSR address.
#UD If the LOCK prefix is used.
*/
+ __writemsr(regs->rcx, value.value);
+ break;
+ }
+ __except (EXCEPTION_EXECUTE_HANDLER)
+ {
vmentry_interrupt_information interrupt{};
interrupt.interruption_type = interruption_type::hardware_exception;
interrupt.vector = EXCEPTION_GP_FAULT;
+
interrupt.valid = true;
+ interrupt.deliver_error_code = true;
__vmx_vmwrite(VMCS_CTRL_VMENTRY_INTERRUPTION_INFORMATION_FIELD, interrupt.flags);
__vmx_vmwrite(VMCS_VMEXIT_INTERRUPTION_ERROR_CODE, g_vcpu->error_code);
diff --git a/hv_types.hpp b/hv_types.hpp
index f0d0992..4f2cd0e 100644
--- a/hv_types.hpp
+++ b/hv_types.hpp
@@ -253,7 +253,7 @@ namespace hv
u64 rax;
} guest_registers, * pguest_registers;
- typedef struct _idt_regs_t
+ typedef struct _idt_regs_ecode_t
{
u64 r15;
u64 r14;
@@ -277,7 +277,32 @@ namespace hv
::rflags rflags;
u64 rsp;
u64 ss_selector;
- } idt_regs_t, *pidt_regs_t;
+ } idt_regs_ecode_t, *pidt_regs_ecode_t;
+
+ typedef struct _idt_regs_t
+ {
+ u64 r15;
+ u64 r14;
+ u64 r13;
+ u64 r12;
+ u64 r11;
+ u64 r10;
+ u64 r9;
+ u64 r8;
+ u64 rbp;
+ u64 rdi;
+ u64 rsi;
+ u64 rdx;
+ u64 rcx;
+ u64 rbx;
+ u64 rax;
+
+ u64 rip;
+ u64 cs_selector;
+ ::rflags rflags;
+ u64 rsp;
+ u64 ss_selector;
+ } idt_regs_t, * pidt_regs_t;
union msr_split
{
@@ -657,8 +682,9 @@ namespace hv
u64 vmcs_phys;
u64 vmxon_phys;
u64 host_stack;
+
u64 error_code;
- u8 nmi_counter;
+ u64 nmi_code;
tss64 tss;
segment_descriptor_64* gdt;
diff --git a/idt.cpp b/idt.cpp
index c5a0dde..d818b95 100644
--- a/idt.cpp
+++ b/idt.cpp
@@ -1,6 +1,7 @@
#include "idt.hpp"
+#include "debug.hpp"
-auto seh_handler(hv::pidt_regs_t regs) -> void
+auto seh_handler_ecode(hv::pidt_regs_ecode_t regs) -> void
{
g_vcpu->error_code = regs->error_code;
const auto rva = regs->rip - reinterpret_cast(idt::image_base);
@@ -45,9 +46,55 @@ auto seh_handler(hv::pidt_regs_t regs) -> void
}
}
+// probably should make a single SEH handler instead of having 2...
+// maybe instead of passing the stack (rsp), just pass RIP and have seh_handler
+// calc the catch block and return the address...
+auto seh_handler(hv::pidt_regs_t regs) -> void
+{
+ const auto rva = regs->rip - reinterpret_cast(idt::image_base);
+ const auto nt_headers = reinterpret_cast(
+ reinterpret_cast(idt::image_base) +
+ reinterpret_cast(idt::image_base)->e_lfanew);
+
+ const auto exception =
+ &nt_headers->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXCEPTION];
+
+ const auto functions =
+ reinterpret_cast(
+ reinterpret_cast(idt::image_base) + exception->VirtualAddress);
+
+ for (auto idx = 0; idx < exception->Size / sizeof(RUNTIME_FUNCTION); ++idx)
+ {
+ const auto function = &functions[idx];
+ if (!(rva >= function->BeginAddress && rva < function->EndAddress))
+ continue;
+
+ const auto unwind_info =
+ reinterpret_cast(
+ reinterpret_cast(idt::image_base) + function->UnwindData);
+
+ if (!(unwind_info->Flags & UNW_FLAG_EHANDLER))
+ continue;
+
+ const auto scope_table =
+ reinterpret_cast(
+ reinterpret_cast(&unwind_info->UnwindCode[
+ (unwind_info->CountOfCodes + 1) & ~1]) + sizeof(u32));
+
+ for (auto entry = 0; entry < scope_table->Count; ++entry)
+ {
+ const auto scope_record = &scope_table->ScopeRecords[entry];
+ if (rva >= scope_record->BeginAddress && rva < scope_record->EndAddress)
+ {
+ regs->rip = reinterpret_cast(idt::image_base) + scope_record->JumpTarget;
+ return;
+ }
+ }
+ }
+}
+
auto nmi_handler(hv::pidt_regs_t regs) -> void
{
- ++g_vcpu->nmi_counter;
ia32_vmx_procbased_ctls_register procbased_ctls;
ia32_vmx_pinbased_ctls_register pinbased_ctls;
diff --git a/idt.hpp b/idt.hpp
index 221a907..0efdaaf 100644
--- a/idt.hpp
+++ b/idt.hpp
@@ -12,6 +12,7 @@ extern "C" void __nmi_handler(void);
extern "C" void nmi_handler(hv::pidt_regs_t regs);
extern "C" void seh_handler(hv::pidt_regs_t regs);
+extern "C" void seh_handler_ecode(hv::pidt_regs_ecode_t regs);
namespace idt
{
diff --git a/idt_handlers.asm b/idt_handlers.asm
index cf19583..36524fb 100644
--- a/idt_handlers.asm
+++ b/idt_handlers.asm
@@ -1,5 +1,6 @@
extern seh_handler : proc
extern nmi_handler : proc
+extern seh_handler_ecode : proc
.code
__nmi_handler proc
@@ -39,11 +40,53 @@ __nmi_handler proc
pop rcx
pop rbx
pop rax
- add rsp, 8 ; remove exception code on the stack...
+
iretq
__nmi_handler endp
+; #DE has no error code...
__de_handler proc
+ push rax
+ push rbx
+ push rcx
+ push rdx
+ push rsi
+ push rdi
+ push rbp
+ push r8
+ push r9
+ push r10
+ push r11
+ push r12
+ push r13
+ push r14
+ push r15
+
+ mov rcx, rsp
+ sub rsp, 20h
+ call seh_handler
+ add rsp, 20h
+
+ pop r15
+ pop r14
+ pop r13
+ pop r12
+ pop r11
+ pop r10
+ pop r9
+ pop r8
+ pop rbp
+ pop rdi
+ pop rsi
+ pop rdx
+ pop rcx
+ pop rbx
+ pop rax
+
+ iretq
+__de_handler endp
+
+; PF and GP have error code...
__pf_handler proc
__gp_handler proc
push rax
@@ -64,7 +107,7 @@ __gp_handler proc
mov rcx, rsp
sub rsp, 20h
- call seh_handler
+ call seh_handler_ecode
add rsp, 20h
pop r15
@@ -87,5 +130,4 @@ __gp_handler proc
iretq
__gp_handler endp
__pf_handler endp
-__de_handler endp
end
\ No newline at end of file
diff --git a/vmcs.cpp b/vmcs.cpp
index cce725f..60569ac 100644
--- a/vmcs.cpp
+++ b/vmcs.cpp
@@ -162,6 +162,7 @@ namespace vmcs
if (vmx_basic.vmx_controls)
{
msr_fix_value.flags = __readmsr(IA32_VMX_TRUE_PINBASED_CTLS);
+ pinbased_ctls.nmi_exiting = true;
pinbased_ctls.flags &= msr_fix_value.allowed_1_settings;
pinbased_ctls.flags |= msr_fix_value.allowed_0_settings;
__vmx_vmwrite(VMCS_CTRL_PIN_BASED_VM_EXECUTION_CONTROLS, pinbased_ctls.flags);
@@ -188,6 +189,7 @@ namespace vmcs
else
{
msr_fix_value.flags = __readmsr(IA32_VMX_PINBASED_CTLS);
+ pinbased_ctls.nmi_exiting = true;
pinbased_ctls.flags &= msr_fix_value.allowed_1_settings;
pinbased_ctls.flags |= msr_fix_value.allowed_0_settings;
__vmx_vmwrite(VMCS_CTRL_PIN_BASED_VM_EXECUTION_CONTROLS, pinbased_ctls.flags);