Author: rharabien
Date: Tue Jun 21 15:53:02 2011
New Revision: 52404
URL:
http://svn.reactos.org/svn/reactos?rev=52404&view=rev
Log:
[NTOSKRNL]
- Display boot blue bitmap when native application or kernel calls NtDisplayString with
string displaying enabled
- Fix drawing order in Phase1InitializationDiscard
Modified:
trunk/reactos/ntoskrnl/ex/init.c
trunk/reactos/ntoskrnl/inbv/inbv.c
trunk/reactos/ntoskrnl/include/internal/inbv.h
Modified: trunk/reactos/ntoskrnl/ex/init.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/init.c?rev=524…
==============================================================================
--- trunk/reactos/ntoskrnl/ex/init.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ex/init.c [iso-8859-1] Tue Jun 21 15:53:02 2011
@@ -1904,32 +1904,29 @@
/* Initialize Power Subsystem in Phase 1*/
if (!PoInitSystem(1)) KeBugCheck(INTERNAL_POWER_ERROR);
+ /* Update progress bar */
+ InbvUpdateProgressBar(90);
+
/* Initialize the Process Manager at Phase 1 */
if (!PsInitSystem(LoaderBlock)) KeBugCheck(PROCESS1_INITIALIZATION_FAILED);
-
- /* Update progress bar */
- InbvUpdateProgressBar(85);
/* Make sure nobody touches the loader block again */
if (LoaderBlock == KeLoaderBlock) KeLoaderBlock = NULL;
LoaderBlock = Context = NULL;
/* Update progress bar */
- InbvUpdateProgressBar(90);
+ InbvUpdateProgressBar(100);
+
+ /* Clean the screen */
+ if (InbvBootDriverInstalled) FinalizeBootLogo();
+
+ /* Allow strings to be displayed */
+ InbvEnableDisplayString(TRUE);
/* Launch initial process */
DPRINT1("Free non-cache pages: %lx\n", MmAvailablePages +
MiMemoryConsumers[MC_CACHE].PagesUsed);
ProcessInfo = &InitBuffer->ProcessInfo;
ExpLoadInitialProcess(InitBuffer, &ProcessParameters, &Environment);
-
- /* Clean the screen */
- if (InbvBootDriverInstalled) FinalizeBootLogo();
-
- /* Update progress bar */
- InbvUpdateProgressBar(100);
-
- /* Allow strings to be displayed */
- InbvEnableDisplayString(TRUE);
/* Wait 5 seconds for initial process to initialize */
Timeout.QuadPart = Int32x32To64(5, -10000000);
Modified: trunk/reactos/ntoskrnl/inbv/inbv.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/inbv.c?rev=5…
==============================================================================
--- trunk/reactos/ntoskrnl/inbv/inbv.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/inbv/inbv.c [iso-8859-1] Tue Jun 21 15:53:02 2011
@@ -576,7 +576,7 @@
VOID
NTAPI
INIT_FUNCTION
-DisplayBootBitmap(IN BOOLEAN SosMode)
+DisplayBootBitmap(IN BOOLEAN TextMode)
{
PVOID Header, Band, Text, Screen;
ROT_BAR_TYPE TempRotBarSelection = RB_UNSPECIFIED;
@@ -591,9 +591,9 @@
InbvReleaseLock();
}
- /* Check if this is SOS mode */
+ /* Check if this is text mode */
ShowProgressBar = FALSE;
- if (SosMode)
+ if (TextMode)
{
/* Check if this is a server OS */
if (SharedUserData->NtProductType == NtProductWinNt)
@@ -696,6 +696,9 @@
/* Draw the progress bar bit */
// if (Bar) InbvBitBlt(Bar, 0, 0);
+
+ /* Set filter which will draw text display if needed */
+ InbvInstallDisplayStringFilter(DisplayFilter);
}
/* Do we have a system thread? */
@@ -712,6 +715,18 @@
VOID
NTAPI
INIT_FUNCTION
+DisplayFilter(PCHAR *String)
+{
+ /* Remove the filter */
+ InbvInstallDisplayStringFilter(NULL);
+
+ /* Draw text screen */
+ DisplayBootBitmap(TRUE);
+}
+
+VOID
+NTAPI
+INIT_FUNCTION
FinalizeBootLogo(VOID)
{
/* Acquire lock and check the display state */
Modified: trunk/reactos/ntoskrnl/include/internal/inbv.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/inbv.h [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/include/internal/inbv.h [iso-8859-1] Tue Jun 21 15:53:02 2011
@@ -42,7 +42,13 @@
VOID
NTAPI
DisplayBootBitmap(
- IN BOOLEAN SosMode
+ IN BOOLEAN TextMode
+);
+
+VOID
+NTAPI
+DisplayFilter(
+ IN PCHAR *String
);
VOID