reactos/win32ss/user/winsrv/consrv
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
..
condrv [WINSRV] Fix 64 bit issues 2018-08-04 19:19:34 +02:00
frontends [BLUE] Improve initialization and interfacing with INBV. 2019-12-15 03:37:52 +01:00
include [CONSRV] Minor code cleanup. 2019-05-26 00:00:39 +02:00
lang [WIN32SS][USER][EXPLORER] Add/Update portuguese translation (#1882) 2019-08-26 21:01:41 +02:00
alias.c Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
alias.h Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
api.h [WINSRV] Implement SrvGetThreadConsoleDesktop(). CORE-13470 2019-04-28 02:50:38 +02:00
coninput.c Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
coninput.h Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
conoutput.c [CONSRV] Speed up console txt output CORE-16187 2019-12-07 18:35:06 +01:00
conoutput.h Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
console.c [WINSRV] consrv: Implement terminating console processes on shutdown 2019-01-04 13:29:26 +02:00
console.h [WINSRV] consrv: Implement terminating console processes on shutdown 2019-01-04 13:29:26 +02:00
consrv.h [CONSRV] Deduplicate GetScreenBufferSizeUnits(), SmallRectToRect() and ConsoleInput. Rename ConsoleList and InsertConsole(). #179 2017-12-08 23:04:48 +01:00
consrv.rc [WIN32SS][USER][EXPLORER] Add/Update portuguese translation (#1882) 2019-08-26 21:01:41 +02:00
frontendctl.c [WINSRV] Implement SrvGetThreadConsoleDesktop(). CORE-13470 2019-04-28 02:50:38 +02:00
handle.c Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
handle.h Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
heap.h Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
history.c [CONSRV] Minor code cleanup. 2019-05-26 00:00:39 +02:00
history.h Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
init.c [WINSRV] ConSrvConnect: Always store the control dispatcher routine 2019-01-04 19:38:36 +02:00
lineinput.c [CONSRV] Minor code cleanup. 2019-05-26 00:00:39 +02:00
lineinput.h Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
popup.c [CONSRV] Minor code cleanup. 2019-05-26 00:00:39 +02:00
popup.h [CONSRV] Minor code cleanup. 2019-05-26 00:00:39 +02:00
procinit.h Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
resource.h Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
settings.c [CONSRV] Minor code cleanup. 2019-05-26 00:00:39 +02:00
shutdown.c [WINSRV] consrv: Implement terminating console processes on shutdown 2019-01-04 13:29:26 +02:00
subsysreg.c [WINSRV] Fix 64 bit issues 2018-08-04 19:19:34 +02:00