Write a proper exception filter for the emulated CPU. Allows to:
- handle memory access exceptions inside the virtual memory space (happens when a VDD installs a memory hook on a memory region and a DOS app tries to read/write inside this region);
- detect NTVDM bugs (if during emulation one tries to read/write in invalid memory areas). This should unveils at least 1 bug in the DOS device emulation, when running 386TO486.COM inside NTVDM.
svn path=/trunk/; revision=66897
Implement DOS character device support and driver loading support.
Separate the DOS memory manager code from the main DOS kernel source file.
CORE-9370 #resolve #comment Committed in revision r66895.
svn path=/trunk/; revision=66895
- Make brush structure definition C++ compatible
- Add delete callback for GDI objects and use if for brushes.
- Make IntGdiSetSolidBrushColor NTAPI instead of FASTCALL
svn path=/trunk/; revision=66891
- Add InterlockedIn/DecrementUL
- Define NULL to nullptr for C++ code
- Reorder includes a bit. First GDI then USER. Don't include most USER headers for C++ for now.
svn path=/trunk/; revision=66890
- Add ntwin32.h, move declaration of PTHREADINFO, PPROCESSINFO and W32CLIENTINFO there
- Avoid language extensions that are not C++ compatible
- Avoid dependenence to PTHREADINFO/PPROCESSINFO in ntuser.h and use incomplete types instead
- Move duplicate definition of PATRECT from ntusrtyp.h to user32.h private header
svn path=/trunk/; revision=66888
- intsafe.h: Fix some constants to be C++ compatible
- sal.h: Implement _Analysis_mode_, __prefast_operator_new_null and __prefast_operator_new_throws annotations
- Make probe.h (mostly) C++ compatible
svn path=/trunk/; revision=66886
- Handle allocation failures in FixupDIBBrushPalette
- In IntCreateDIBitmap make sure to the absolute height to GreCreateBitmap
svn path=/trunk/; revision=66883
- Introduce a "console configuration" library that is used by both CONSRV and the console properties applet so that they can share common code concerning getting/setting console registry properties.
- Make use of the Windows-compatible (and undocumented) CONSOLE_STATE_INFO structure for that purpose (as well as the WM_SETCONSOLEINFO): see commits r63819 and r58415 and links within for more details. Note: this structure needs to be 4-byte packed (contrary to what it is said in almost all the links from above. The difference is only visible at the level of the last member that is the ConsoleTitle string array. This was tested on windows).
- Simplify some parts of console settings initialization.
- Some work is still needed concerning how to correctly retrieve the default console settings (without touching the ConsoleTitle member of CONSOLE_STATE_INFO, contrary to what we do currently).
[CONSOLE.DLL]
- Make the console properties applet windows-compatible, in the sense that you can now run it on win2k3 and use it instead of the windows one. This implies having the same strange hacks as windows' one, namely, that the window handle parameter of the CPlApplet entry point is either used as the caller (parent) window handle, OR, as a shared section handle to shared data with CONSRV.
[KERNEL32]
- Rework the console applet initialization accordingly. Also we reload each time the console.dll when opening the console applet, and then unload it: this "allows" to reset all the global variables that console.dll may (and does) have.
svn path=/trunk/; revision=66867
- Create the window station handle and the desktops with MAXIMUM_ALLOWED access rights.
- Call AddAceToWindowStation before calling SetWindowStationUser.
svn path=/trunk/; revision=66863
Make outputting a string as easy as it should be. Now that our StringOut internally uses OutputDebugStringA instead of DbgPrint, we don't need to output in 512 byte chunks anymore.
Additionally, do an explicit flush when using std::cout to not lose debug output.
ROSTESTS-158 #resolve #comment Committed in r66855
svn path=/trunk/; revision=66855
- set the devmode size for ENUM_REGISTRY_SETTINGS case in NtUserEnumDisplaySettings so it gets copied back to caller later
svn path=/trunk/; revision=66854