mirror of
https://github.com/reactos/reactos.git
synced 2025-02-25 01:39:30 +00:00
Do not revoke the display ownership until the bootvid thread is terminated.
svn path=/trunk/; revision=20015
This commit is contained in:
parent
873e87742a
commit
1c93c8782a
1 changed files with 13 additions and 3 deletions
|
@ -45,7 +45,7 @@
|
|||
* Set to Write Mode 2 and Read Mode 0.
|
||||
*/
|
||||
|
||||
static VGA_REGISTERS Mode12Regs =
|
||||
static const VGA_REGISTERS Mode12Regs =
|
||||
{
|
||||
/* CRT Controller Registers */
|
||||
{0x5F, 0x4F, 0x50, 0x82, 0x54, 0x80, 0x0B, 0x3E, 0x00, 0x40, 0x00, 0x00,
|
||||
|
@ -69,6 +69,9 @@ long maskbit[640];
|
|||
static CLIENT_ID BitmapThreadId;
|
||||
static PUCHAR BootimageBitmap;
|
||||
|
||||
static ULONG ShutdownNotify;
|
||||
static KEVENT ShutdownCompleteEvent;
|
||||
|
||||
/* DATA **********************************************************************/
|
||||
|
||||
static PDRIVER_OBJECT BootVidDriverObject = NULL;
|
||||
|
@ -156,7 +159,7 @@ vgaPreCalc()
|
|||
|
||||
|
||||
STATIC VOID FASTCALL
|
||||
vgaSetRegisters(PVGA_REGISTERS Registers)
|
||||
vgaSetRegisters(const VGA_REGISTERS *Registers)
|
||||
{
|
||||
UINT i;
|
||||
|
||||
|
@ -237,6 +240,9 @@ static VOID STDCALL
|
|||
VidCleanUp(VOID)
|
||||
{
|
||||
InbvUnmapVideoMemory();
|
||||
InterlockedIncrement(&ShutdownNotify);
|
||||
KeWaitForSingleObject(&ShutdownCompleteEvent, Executive, KernelMode,
|
||||
FALSE, NULL);
|
||||
}
|
||||
|
||||
|
||||
|
@ -495,7 +501,7 @@ InbvFadeUpPalette()
|
|||
FaderPaletteDelta[i].b = ((Palette[i].rgbBlue << 8) / PALETTE_FADE_STEPS);
|
||||
}
|
||||
|
||||
for (i = 0; i < PALETTE_FADE_STEPS; i++)
|
||||
for (i = 0; i < PALETTE_FADE_STEPS && !ShutdownNotify; i++)
|
||||
{
|
||||
/* Disable screen and enable palette access. */
|
||||
READ_PORT_UCHAR(STATUS);
|
||||
|
@ -548,6 +554,7 @@ InbvBitmapThreadMain(PVOID Ignored)
|
|||
{
|
||||
DbgPrint("Warning: Cannot find boot image\n");
|
||||
}
|
||||
KeSetEvent(&ShutdownCompleteEvent, 0, FALSE);
|
||||
}
|
||||
|
||||
|
||||
|
@ -639,6 +646,9 @@ DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
|
|||
|
||||
BootVidDriverObject = DriverObject;
|
||||
|
||||
ShutdownNotify = 0;
|
||||
KeInitializeEvent(&ShutdownCompleteEvent, NotificationEvent, FALSE);
|
||||
|
||||
/* Register driver routines */
|
||||
DriverObject->MajorFunction[IRP_MJ_CLOSE] = VidDispatch;
|
||||
DriverObject->MajorFunction[IRP_MJ_CREATE] = VidDispatch;
|
||||
|
|
Loading…
Reference in a new issue