reactos/sdk/include
Hermès Bélusca-Maïto bfd8a84865
[BLUE] Improve initialization and interfacing with INBV.
CORE-15901

This fixes display reset transition when an external module acquired
INBV ownership and then released it, similarly to what was done in
commit 0ad65796 for VIDEOPRT.

For this a backup screenbuffer is used to store the contents of the
screen just before an INBV screen acquire transition, and these contents
are restored when it is detected that INBV ownership has been released.
Also, the active text font associated with the active console code-page
is restored, as well as the cursor state and shape.

In addition, any user of BLUE.SYS is now required to explicitly issue
a new IOCTL_CONSOLE_RESET_SCREEN to either enable or disable the screen.
This allows avoiding nasty unwanted screen mode switches when a handle
to the \Device\BlueScreen device is opened but no screen mode switch was
actually wanted - This "fixes" this annoyance on ReactOS and Windows,
when these are running witha VGA-compatible video driver and one wants
to look at properties of the \Device\BlueScreen device using
Sysinternals' WinObj.

Following this, we don't need to check anymore for explicit INBV
ownership by issuing calls to InbvCheckDisplayOwnership(), but instead
we check whether the screen has beeen manually enabled using the
aforementioned IOCTL. This partly supersedes commit 8b553a4b, and allows
fixing the second bug, namely that if we start ReactOS without the
/NOGUIBOOT option (and thus, INBV is active during boot), USETUP would
not show up anything because BLUE.SYS wouldn't display anything on screen.
See CORE-15901.

[USETUP][CONSRV] Call IOCTL_CONSOLE_RESET_SCREEN to tell BlueScreen device to enable the screen.
2019-12-15 03:37:52 +01:00
..
asm [SDK] Fix a typo, caught by Stas'M :) 2019-10-14 01:36:42 +02:00
c++ [SDK] Implement std::vector.data() 2019-11-18 23:50:33 +01:00
crt [SDK:CRT] For intrinsics that don't exist on MSVC 2010 we cannot use an implementation in inlined ASM for x64 builds. 2019-10-07 02:54:05 +02:00
ddk Fix the ntstrsafe.h tests to make sense, actually succeed using ntstrsafe.h from Win10 (10.0.15063), and fix ReactOS' ntstrsafe.h to also pass these tests. (#1859) 2019-08-28 22:42:52 +02:00
dxsdk [DXSDK] Improve dxerr?.h a bit (#1617) 2019-06-06 01:50:24 +02:00
GL Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
host [CMAKE] Define HAVE_* constants unconditionally (follow-up to PR #2041) (#2052) 2019-11-18 18:57:35 +01:00
ndk [NDK][NTOS:INBV] Remove non-exported INBV functions from NDK; do some cleanup in INBV headers; label both InbvSetProgressBarSubset() and InbvSetProgressBarCoordinates() as INIT_FUNCTION since they are used only for the boot splash. And fix MSVC build. 2019-11-25 15:54:45 +01:00
psdk [WINMM_WINETEST][SDK][INCLUDE] Try to fix MSVC winmm:generated build 2019-12-08 12:45:51 +09:00
reactos [BLUE] Improve initialization and interfacing with INBV. 2019-12-15 03:37:52 +01:00
xdk [SDK] Define DO_UNLOAD_PENDING 2019-09-13 20:08:39 +02:00