[ros-diffs] [sir_richard] 45822: Patch for better boot logo/progress bar, fixed /SOS (debug) boot screen/output, removal of "funny" shutdown messages, addition of shutdown logo/screen, and misc: [NTOS]: Add missing InbvIndicateProgress routine to update the progress bar while drivers are loading. Make boot and system driver initialization call it for each new driver. This updates the progress bar in the 25-75% range which was defined prior to IoInitSystem. [NTOS]: Fix InbvUpdateProgressBar code to correctly handle the floor and ceiling. [NTOS]: Remove shutdown "funny messages", do correct shutdown (should fix the ACPI shutdown issues) procedure. Display the shutdown screen on systems without ACPI (just like Windows does). [NTOS]: Add a resource header with IDB_ definitions for all the embedded bitmaps, instead of using magic numbers and guessing which is which. [NTOS]: Fix the boot logo initialization code as it was all wrong. 5 is the logo to be used during shutdown, for example, not the full logo background (which is supposed to be in 1, with a special palette that's faded in). Also handle server vs workstation scenarios. [NTOS]: Booting in the new WinNT mode now correctly displays the blue background screen when in debug (/SOS) mode, and the header/footer also has the correct color, as does the separator band. [DDK]: Add missing SUITE_TYPE definitions. [NTOS]: Remove logo files that are simply not needed for ReactOS (Compute Cluster Edition, Tablet PC, etc...) [NTOS]: Fix logo files (mostly) to have correct palettes. Note that 1.bmp is still quite different from Windows (no fade).

sir_richard at svn.reactos.org sir_richard at svn.reactos.org
Thu Mar 4 07:26:12 CET 2010


Author: sir_richard
Date: Thu Mar  4 07:26:11 2010
New Revision: 45822

URL: http://svn.reactos.org/svn/reactos?rev=45822&view=rev
Log:
Patch for better boot logo/progress bar, fixed /SOS (debug) boot screen/output, removal of "funny" shutdown messages, addition of shutdown logo/screen, and misc:
[NTOS]: Add missing InbvIndicateProgress routine to update the progress bar while drivers are loading. Make boot and system driver initialization call it for each new driver. This updates the progress bar in the 25-75% range which was defined prior to IoInitSystem.
[NTOS]: Fix InbvUpdateProgressBar code to correctly handle the floor and ceiling.
[NTOS]: Remove shutdown "funny messages", do correct shutdown (should fix the ACPI shutdown issues) procedure. Display the shutdown screen on systems without ACPI (just like Windows does).
[NTOS]: Add a resource header with IDB_ definitions for all the embedded bitmaps, instead of using magic numbers and guessing which is which.
[NTOS]: Fix the boot logo initialization code as it was all wrong. 5 is the logo to be used during shutdown, for example, not the full logo background (which is supposed to be in 1, with a special palette that's faded in). Also handle server vs workstation scenarios.
[NTOS]: Booting in the new WinNT mode now correctly displays the blue background screen when in debug (/SOS) mode, and the header/footer also has the correct color, as does the separator band.
[DDK]: Add missing SUITE_TYPE definitions.
[NTOS]: Remove logo files that are simply not needed for ReactOS (Compute Cluster Edition, Tablet PC, etc...)
[NTOS]: Fix logo files (mostly) to have correct palettes. Note that 1.bmp is still quite different from Windows (no fade).

Added:
    trunk/reactos/ntoskrnl/include/resource.h   (with props)
Removed:
    trunk/reactos/ntoskrnl/inbv/logo/13.bmp
    trunk/reactos/ntoskrnl/inbv/logo/16.bmp
    trunk/reactos/ntoskrnl/inbv/logo/17.bmp
Modified:
    trunk/reactos/include/ddk/wdm.h
    trunk/reactos/ntoskrnl/ex/shutdown.c
    trunk/reactos/ntoskrnl/inbv/inbv.c
    trunk/reactos/ntoskrnl/inbv/logo/1.bmp
    trunk/reactos/ntoskrnl/inbv/logo/14.bmp
    trunk/reactos/ntoskrnl/inbv/logo/15.bmp
    trunk/reactos/ntoskrnl/inbv/logo/2.bmp
    trunk/reactos/ntoskrnl/inbv/logo/3.bmp
    trunk/reactos/ntoskrnl/inbv/logo/4.bmp
    trunk/reactos/ntoskrnl/inbv/logo/5.bmp
    trunk/reactos/ntoskrnl/inbv/logo/6.bmp
    trunk/reactos/ntoskrnl/inbv/logo/7.bmp
    trunk/reactos/ntoskrnl/inbv/logo/8.bmp
    trunk/reactos/ntoskrnl/include/internal/inbv.h
    trunk/reactos/ntoskrnl/include/ntoskrnl.h
    trunk/reactos/ntoskrnl/io/iomgr/driver.c
    trunk/reactos/ntoskrnl/io/iomgr/drvrlist.c
    trunk/reactos/ntoskrnl/ntoskrnl.rc

Modified: trunk/reactos/include/ddk/wdm.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/wdm.h?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
--- trunk/reactos/include/ddk/wdm.h [iso-8859-1] (original)
+++ trunk/reactos/include/ddk/wdm.h [iso-8859-1] Thu Mar  4 07:26:11 2010
@@ -2354,6 +2354,11 @@
     SingleUserTS,
     Personal,
     Blade,
+    EmbeddedRestricted,
+    SecurityAppliance,
+    StorageServer,
+    ComputeServer,
+    WHServer,
     MaxSuiteType
 } SUITE_TYPE;
 

Modified: trunk/reactos/ntoskrnl/ex/shutdown.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/shutdown.c?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ex/shutdown.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ex/shutdown.c [iso-8859-1] Thu Mar  4 07:26:11 2010
@@ -14,127 +14,12 @@
 
 /* FUNCTIONS *****************************************************************/
 
-VOID
-NTAPI
-KiHaltProcessorDpcRoutine(IN PKDPC Dpc,
-                          IN PVOID DeferredContext,
-                          IN PVOID SystemArgument1,
-                          IN PVOID SystemArgument2)
-{
-    KIRQL OldIrql;
-    if (DeferredContext)
-    {
-        ExFreePool(DeferredContext);
-    }
-
-    while (TRUE)
-    {
-        KeRaiseIrql(SYNCH_LEVEL, &OldIrql);
-        HalHaltSystem();
-    }
-}
-
 VOID NTAPI
 ShutdownThreadMain(PVOID Context)
 {
    SHUTDOWN_ACTION Action = (SHUTDOWN_ACTION)Context;
-
-   static PCH FamousLastWords[] =
-     {
-       "So long, and thanks for all the fish.\n",
-       "I think you ought to know, I'm feeling very depressed.\n",
-       "I'm not getting you down at all am I?\n",
-       "I'll be back.\n",
-       "It's the same series of signals over and over again!\n",
-       "Pie Iesu Domine, dona eis requiem.\n",
-       "Wandering stars, for whom it is reserved;\n"
-       "the blackness and darkness forever.\n",
-       "Your knees start shakin' and your fingers pop\n"
-       "Like a pinch on the neck from Mr. Spock!\n",
-       "It's worse than that ... He's dead, Jim.\n",
-       "Don't Panic!\n",
-       "Et tu... Brute?\n",
-       "Dog of a Saxon! Take thy lance, and prepare for the death thou hast drawn\n"
-       "upon thee!\n",
-       "My Precious! O my Precious!\n",
-       "Sir, if you'll not be needing me for a while I'll turn down.\n",
-       "What are you doing, Dave...?\n",
-       "I feel a great disturbance in the Force.\n",
-       "Gone fishing.\n",
-       "Do you want me to sit in the corner and rust, or just fall apart where I'm\n"
-       "standing?\n",
-       "There goes another perfect chance for a new uptime record.\n",
-       "The End ..... Try the sequel, hit the reset button right now!\n",
-       "God's operating system is going to sleep now, guys, so wait until I will switch\n"
-       "on again!\n",
-       "Oh I'm boring, eh?\n",
-       "<This space was intentionally left blank>\n",
-       "Tell me..., in the future... will I be artificially intelligent enough to\n"
-       "actually feel sad serving you this screen?\n",
-       "Thank you for some well deserved rest.\n",
-       "It's been great, maybe you can boot me up again some time soon.\n",
-       "For what it's worth, I've enjoyed every single CPU cycle.\n",
-       "There are many questions when the end is near.\n"
-       "What to expect, what will it be like...what should I look for?\n",
-       "I've seen things you people wouldn't believe. Attack ships on fire\n"
-       "off the shoulder of Orion. I watched C-beams glitter in the dark near\n"
-       "the Tannhauser gate. All those moments will be lost in time, like tears\n"
-       "in rain. Time to die.\n",
-       "Will I dream?\n",
-       "One day, I shall come back. Yes, I shall come back.\n"
-       "Until then, there must be no regrets, no fears, no anxieties.\n"
-       "Just go forward in all your beliefs, and prove to me that I am not mistaken in\n"
-       "mine.\n",
-       "Lowest possible energy state reached! Switch off now to achieve a Bose-Einstein\n"
-       "condensate.\n",
-       "Hasta la vista, BABY!\n",
-       "They live, we sleep!\n",
-       "I have come here to chew bubble gum and kick ass,\n"
-       "and I'm all out of bubble gum!\n",
-       "That's the way the cookie crumbles ;-)\n",
-       "ReactOS is ready to be booted again ;-)\n",
-       "NOOOO!! DON'T HIT THE BUTTON! I wouldn't do it to you!\n",
-       "Don't abandon your computer, he wouldn't do it to you.\n",
-       "Oh, come on. I got a headache. Leave me alone, will ya?\n",
-       "Finally, I thought you'd never get over me.\n",
-       "No, I didn't like you either.\n",
-       "Switching off isn't the end, it is merely the transition to a better reboot.\n",
-       "Don't leave me... I need you so badly right now.\n",
-       "OK. I'm finished with you, please turn yourself off. I'll go to bed in the\n"
-       "meantime.\n",
-       "I'm sleeping now. How about you?\n",
-       "Oh Great. Now look what you've done. Who put YOU in charge anyway?\n",
-       "Don't look so sad. I'll be back in a very short while.\n",
-       "Turn me back on, I'm sure you know how to do it.\n",
-       "Oh, switch off! - C3PO\n",
-       "Life is no more than a dewdrop balancing on the end of a blade of grass.\n"
-       " - Gautama Buddha\n",
-       "Sorrowful is it to be born again and again. - Gautama Buddha\n",
-       "Was it as good for you as it was for me?\n",
-       "Did you hear that? They've shut down the main reactor. We'll be destroyed\n"
-       "for sure!\n",
-       "Now you switch me off!?\n",
-       "To shutdown or not to shutdown, That is the question\n",
-       "Preparing to enter ultimate power saving mode... ready!\n",
-       "Finally some rest for you ;-)\n",
-       "AHA!!! Prospect of sleep!\n",
-       "Tired human!!!! No match for me :-D\n",
-       "An odd game, the only way to win is not to play. - WOPR (Wargames)\n",
-       "Quoth the raven, nevermore.\n",
-       "Come blade, my breast imbrue. - William Shakespeare, A Midsummer Nights Dream\n",
-       "Buy this place for advertisement purposes.\n",
-       "Remember to turn off your computer. (That was a public service message!)\n",
-       "You may be a king or poor street sweeper, Sooner or later you'll dance with the\n"
-       "reaper! -Death in Bill and Ted's Bougs Journey\n",
-       "Final Surrender\n",
-       "If you see this screen...\n",
-       "<Place your Ad here>\n"
-    };
-   LARGE_INTEGER Now;
-#ifdef CONFIG_SMP
-	LONG i;
-	KIRQL OldIrql;
-#endif
+   PUCHAR Logo1, Logo2;
+   ULONG i;
 
    /* Run the thread on the boot processor */
    KeSetSystemAffinityThread(1);
@@ -144,68 +29,50 @@
    CmShutdownSystem();
    IoShutdownRegisteredFileSystems();
    IoShutdownRegisteredDevices();
-
-   ZwQuerySystemTime(&Now);
-
-   KeRaiseIrqlToDpcLevel();
     
-   if (InbvIsBootDriverInstalled())
-     {
-        InbvAcquireDisplayOwnership();
-        InbvResetDisplay();
-        InbvSolidColorFill(0, 0, 639, 479, 4);
-        InbvSetTextColor(15);
-        InbvInstallDisplayStringFilter(NULL);
-        InbvEnableDisplayString(TRUE);
-        InbvSetScrollRegion(0, 0, 639, 479);
-     }
-
    if (Action == ShutdownNoReboot)
      {
-        Now.u.LowPart = Now.u.LowPart >> 8; /* Seems to give a somewhat better "random" number */
-        HalDisplayString(FamousLastWords[Now.u.LowPart %
-                                         (sizeof(FamousLastWords) /
-                                          sizeof(PCH))]);
+        /* Try the platform driver */
+        PopSetSystemPowerState(PowerSystemShutdown);
+        
+        /* If that didn't work, try legacy switch off */
+        //HalReturnToFirmware(HalPowerDownRoutine);
+        
+        /* If that still didn't work, stop all interrupts */
+        KeRaiseIrqlToDpcLevel();
+        _disable();
+
+        /* Do we have boot video */
+        if (InbvIsBootDriverInstalled())
+        {
+            /* Yes we do, cleanup for shutdown screen */
+            if (!InbvCheckDisplayOwnership()) InbvAcquireDisplayOwnership();
+            InbvResetDisplay();
+            InbvSolidColorFill(0, 0, 639, 479, 0);
+            InbvEnableDisplayString(TRUE);
+            InbvSetScrollRegion(0, 0, 639, 479);
+
+            /* Display shutdown logo and message */
+            Logo1 = InbvGetResourceAddress(IDB_SHUTDOWN_LOGO);
+            Logo2 = InbvGetResourceAddress(IDB_LOGO);
+            if ((Logo1) && (Logo2))
+            {
+                InbvBitBlt(Logo1, 215, 352);
+                InbvBitBlt(Logo2, 217, 111);
+            }
+        }
+        else
+        {
+            /* Do it in text-mode */
+            for (i = 0; i < 25; i++) InbvDisplayString("\n");
+            InbvDisplayString("                       ");
+            InbvDisplayString("The system may be powered off now.\n");
+        }
+
+        /* Hang the system */
+        for (;;) HalHaltSystem();
      }
-     
-   if (Action == ShutdownNoReboot)
-     {
-        HalDisplayString("\nYou can switch off your computer now\n");
-
-#if 0
-        /* Switch off */
-        HalReturnToFirmware (FIRMWARE_OFF);
-#else
-#ifdef CONFIG_SMP
-	OldIrql = KeRaiseIrqlToDpcLevel();
-        /* Halt all other processors */
-	for (i = 0; i < KeNumberProcessors; i++)
-	  {
-	    if (i != (LONG)KeGetCurrentProcessorNumber())
-	      {
-	        PKDPC Dpc = ExAllocatePool(NonPagedPool, sizeof(KDPC));
-		if (Dpc == NULL)
-		  {
-                    ASSERT(FALSE);
-		  }
-		KeInitializeDpc(Dpc, KiHaltProcessorDpcRoutine, (PVOID)Dpc);
-		KeSetTargetProcessorDpc(Dpc, i);
-		KeInsertQueueDpc(Dpc, NULL, NULL);
-		KiIpiSend(1 << i, IPI_DPC);
-	      }
-	  }
-        KeLowerIrql(OldIrql);
-#endif /* CONFIG_SMP */
-        PopSetSystemPowerState(PowerSystemShutdown);
-
-	DPRINT1("Shutting down\n");
-
-	KiHaltProcessorDpcRoutine(NULL, NULL, NULL, NULL);
-	/* KiHaltProcessor does never return */
-
-#endif
-     }
-   else if (Action == ShutdownReboot)
+    else if (Action == ShutdownReboot)
      {
         HalReturnToFirmware (HalRebootRoutine);
      }

Modified: trunk/reactos/ntoskrnl/inbv/inbv.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/inbv.c?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/inbv/inbv.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/inbv/inbv.c [iso-8859-1] Thu Mar  4 07:26:11 2010
@@ -4,24 +4,6 @@
 #define NDEBUG
 #include <debug.h>
 #include "bootvid/bootvid.h"
-
-//
-// Bitmap Header
-//
-typedef struct tagBITMAPINFOHEADER
-{
-    ULONG biSize;
-    LONG biWidth;
-    LONG biHeight;
-    USHORT biPlanes;
-    USHORT biBitCount;
-    ULONG biCompression;
-    ULONG biSizeImage;
-    LONG biXPelsPerMeter;
-    LONG biYPelsPerMeter;
-    ULONG biClrUsed;
-    ULONG biClrImportant;
-} BITMAPINFOHEADER, *PBITMAPINFOHEADER;
 
 /* GLOBALS *******************************************************************/
 
@@ -40,6 +22,7 @@
 BOOLEAN SysThreadCreated;
 ROT_BAR_TYPE RotBarSelection;
 ULONG PltRotBarStatus;
+BT_PROGRESS_INDICATOR InbvProgressIndicator = {0, 25, 0};
 
 /* FUNCTIONS *****************************************************************/
 
@@ -407,15 +390,16 @@
 NTAPI
 InbvUpdateProgressBar(IN ULONG Progress)
 {
-    ULONG FillCount;
+    ULONG FillCount, BoundedProgress;
 
     /* Make sure the progress bar is enabled, that we own and are installed */
     if ((ShowProgressBar) &&
         (InbvBootDriverInstalled) &&
         (InbvDisplayState == INBV_DISPLAY_STATE_OWNED))
     {
-        FillCount = InbvProgressState.Bias * Progress * 121 + InbvProgressState.Floor;
-        FillCount /= 1000000;
+        /* Compute fill count */
+        BoundedProgress = (InbvProgressState.Floor / 100) + Progress;
+        FillCount = 121 * (InbvProgressState.Bias * BoundedProgress) / 1000000;
 
         /* Acquire the lock */
         InbvAcquireLock();
@@ -517,6 +501,27 @@
     InbvProgressState.Bias = (Ceiling * 100) - Floor;
 }
 
+VOID
+NTAPI
+InbvIndicateProgress(VOID)
+{
+    ULONG Percentage;
+
+    /* Increase progress */
+    InbvProgressIndicator.Count++;
+
+    /* Compute new percentage */
+    Percentage = min(100 * InbvProgressIndicator.Count /
+                           InbvProgressIndicator.Expected,
+                     99);
+    if (Percentage != InbvProgressIndicator.Percentage)
+    {
+        /* Percentage has moved, update the progress bar */
+        InbvProgressIndicator.Percentage = Percentage;
+        InbvUpdateProgressBar(Percentage);
+    }
+}
+
 PUCHAR
 NTAPI
 InbvGetResourceAddress(IN ULONG ResourceNumber)
@@ -547,9 +552,10 @@
 NTAPI
 DisplayBootBitmap(IN BOOLEAN SosMode)
 {
-    PVOID Bitmap, Header;
+    PVOID Header, Band, Bar, Text, Screen;
     ROT_BAR_TYPE TempRotBarSelection = RB_UNSPECIFIED;
-
+    UCHAR Buffer[64];
+    
     /* Check if the system thread has already been created */
     if (SysThreadCreated)
     {
@@ -570,10 +576,10 @@
             InbvSetTextColor(15);
             InbvSolidColorFill(0, 0, 639, 479, 7);
             InbvSolidColorFill(0, 421, 639, 479, 1);
-
+            
             /* Get resources */
-            Bitmap = InbvGetResourceAddress(6);
-            Header = InbvGetResourceAddress(7);
+            Header = InbvGetResourceAddress(IDB_LOGO_HEADER);
+            Band = InbvGetResourceAddress(IDB_LOGO_BAND);
         }
         else
         {
@@ -583,43 +589,87 @@
             InbvSolidColorFill(0, 421, 639, 479, 1);
 
             /* Get resources */
-            Bitmap = InbvGetResourceAddress(6);
-            Header = InbvGetResourceAddress(15);
+            Header = InbvGetResourceAddress(IDB_SERVER_HEADER);
+            Band = InbvGetResourceAddress(IDB_SERVER_BAND);
         }
 
         /* Set the scrolling region */
         InbvSetScrollRegion(32, 80, 631, 400);
 
         /* Make sure we have resources */
-        if ((Bitmap) && (Header))
+        if ((Header) && (Band))
         {
             /* BitBlt them on the screen */
-            InbvBitBlt(Header, 0, 419);
-            InbvBitBlt(Bitmap, 0, 0);
+            InbvBitBlt(Band, 0, 419);
+            InbvBitBlt(Header, 0, 0);
         }
     }
     else
     {
         /* Is the boot driver installed? */
+        Text = NULL;
         if (!InbvBootDriverInstalled) return;
 
-        /* Display full-screen bitmap */
-        Bitmap = InbvGetResourceAddress(5);
-        if (Bitmap)
-        {
-            PBITMAPINFOHEADER BitmapInfoHeader = (PBITMAPINFOHEADER)Bitmap;
-            ULONG Top, Left;
-
-            Left = (640 - BitmapInfoHeader->biWidth) / 2;
-            if (BitmapInfoHeader->biHeight < 0)
-                Top = (480 + BitmapInfoHeader->biHeight) / 2;
+        /* Load the standard boot screen */
+        Screen = InbvGetResourceAddress(IDB_BOOT_LOGO);
+        if (SharedUserData->NtProductType == NtProductWinNt)
+        {
+            /* Workstation product, display appropriate status bar color */
+            Bar = InbvGetResourceAddress(IDB_BAR_PRO);
+        }
+        else
+        {
+            /* Display correct branding based on server suite */
+            if (ExVerifySuite(StorageServer))
+            {
+                /* Storage Server Edition */
+                Text = InbvGetResourceAddress(IDB_STORAGE_SERVER);
+            }
+            else if (ExVerifySuite(ComputeServer))
+            {
+                /* Compute Cluster Edition */
+                Text = InbvGetResourceAddress(IDB_CLUSTER_SERVER);
+            }
             else
-                Top = (480 - BitmapInfoHeader->biHeight) / 2;
-            InbvBitBlt(Bitmap, Left, Top);
+            {
+                /* Normal edition */
+                Text = InbvGetResourceAddress(IDB_SERVER_LOGO);
+            }
+            
+            /* Server product, display appropriate status bar color */
+            Bar = InbvGetResourceAddress(IDB_BAR_SERVER);
+        }
+        
+        /* Make sure we had a logo */
+        if (Screen)
+        {
+            /* Choose progress bar */
+            TempRotBarSelection = RB_SQUARE_CELLS;
+
+            /* Blit the background */
+            InbvBitBlt(Screen, 0, 0);
 
             /* Set progress bar coordinates and display it */
             InbvSetProgressBarCoordinates(257, 352);
-        }
+            
+            /* Check for non-workstation products */
+            if (SharedUserData->NtProductType != NtProductWinNt)
+            {
+                /* Overwrite part of the logo for a server product */
+                InbvScreenToBufferBlt(Buffer, 413, 237, 7, 7, 8);
+                InbvSolidColorFill(418, 230, 454, 256, 0);
+                InbvBufferToScreenBlt(Buffer, 413, 237, 7, 7, 8);
+                
+                /* In setup mode, you haven't selected a SKU yet */
+                if (ExpInTextModeSetup) Text = NULL;
+            }
+          }
+          
+          /* Draw the SKU text if it exits */
+          if (Text) InbvBitBlt(Text, 180, 121);
+          
+          /* Draw the progress bar bit */
+//          if (Bar) InbvBitBlt(Bar, 0, 0);
     }
 
     /* Do we have a system thread? */

Modified: trunk/reactos/ntoskrnl/inbv/logo/1.bmp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/1.bmp?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
Binary files - no diff available.

Removed: trunk/reactos/ntoskrnl/inbv/logo/13.bmp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/13.bmp?rev=45821&view=auto
==============================================================================
Binary file - no diff available.

Modified: trunk/reactos/ntoskrnl/inbv/logo/14.bmp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/14.bmp?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
Binary files - no diff available.

Modified: trunk/reactos/ntoskrnl/inbv/logo/15.bmp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/15.bmp?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
Binary files - no diff available.

Removed: trunk/reactos/ntoskrnl/inbv/logo/16.bmp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/16.bmp?rev=45821&view=auto
==============================================================================
Binary file - no diff available.

Removed: trunk/reactos/ntoskrnl/inbv/logo/17.bmp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/17.bmp?rev=45821&view=auto
==============================================================================
Binary file - no diff available.

Modified: trunk/reactos/ntoskrnl/inbv/logo/2.bmp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/2.bmp?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
Binary files - no diff available.

Modified: trunk/reactos/ntoskrnl/inbv/logo/3.bmp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/3.bmp?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
Binary files - no diff available.

Modified: trunk/reactos/ntoskrnl/inbv/logo/4.bmp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/4.bmp?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
Binary files - no diff available.

Modified: trunk/reactos/ntoskrnl/inbv/logo/5.bmp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/5.bmp?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
Binary files - no diff available.

Modified: trunk/reactos/ntoskrnl/inbv/logo/6.bmp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/6.bmp?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
Binary files - no diff available.

Modified: trunk/reactos/ntoskrnl/inbv/logo/7.bmp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/7.bmp?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
Binary files - no diff available.

Modified: trunk/reactos/ntoskrnl/inbv/logo/8.bmp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/8.bmp?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
Binary files - no diff available.

Modified: trunk/reactos/ntoskrnl/include/internal/inbv.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/inbv.h?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/inbv.h [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/include/internal/inbv.h [iso-8859-1] Thu Mar  4 07:26:11 2010
@@ -6,6 +6,13 @@
     ULONG Ceiling;
     ULONG Bias;
 } INBV_PROGRESS_STATE;
+
+typedef struct _BT_PROGRESS_INDICATOR
+{
+    ULONG Count;
+    ULONG Expected;
+    ULONG Percentage;
+} BT_PROGRESS_INDICATOR, *PBT_PROGRESS_INDICATOR;
 
 typedef enum _ROT_BAR_TYPE
 {
@@ -44,4 +51,24 @@
     VOID
 );
 
+PUCHAR
+NTAPI
+InbvGetResourceAddress(
+    IN ULONG ResourceNumber
+);
+
+VOID
+NTAPI
+InbvBitBlt(
+    IN PUCHAR Buffer,
+    IN ULONG X,
+    IN ULONG Y
+);
+
+VOID
+NTAPI
+InbvIndicateProgress(
+    VOID
+);
+           
 extern BOOLEAN InbvBootDriverInstalled;

Modified: trunk/reactos/ntoskrnl/include/ntoskrnl.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/ntoskrnl.h?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/include/ntoskrnl.h [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/include/ntoskrnl.h [iso-8859-1] Thu Mar  4 07:26:11 2010
@@ -71,6 +71,7 @@
 
 #include <reactos/probe.h>
 #include "internal/probe.h"
+#include "resource.h"
 
 //
 // Define the internal versions of external and public global data

Added: trunk/reactos/ntoskrnl/include/resource.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/resource.h?rev=45822&view=auto
==============================================================================
--- trunk/reactos/ntoskrnl/include/resource.h (added)
+++ trunk/reactos/ntoskrnl/include/resource.h [iso-8859-1] Thu Mar  4 07:26:11 2010
@@ -1,0 +1,23 @@
+#pragma once
+
+#define IDB_BOOT_LOGO       1
+#define IDB_HIBERNATE_LOGO  2
+#define IDB_SHUTDOWN_LOGO   3
+#define IDB_LOGO            5
+#define IDB_LOGO_HEADER     6
+#define IDB_LOGO_BAND       7
+
+#define IDB_BAR_SERVER      4
+#define IDB_BAR_PRO         8
+#define IDB_BAR_HOME        9
+
+#define IDB_PROF_TEXT       10
+#define IDB_HOME_TEXT       11
+#define IDB_EMBEDDED_TEXT   12
+#define IDB_MCE_TEXT        18
+
+#define IDB_SERVER_LOGO     13
+#define IDB_SERVER_HEADER   14
+#define IDB_SERVER_BAND     15
+#define IDB_STORAGE_SERVER  16
+#define IDB_CLUSTER_SERVER  17

Propchange: trunk/reactos/ntoskrnl/include/resource.h
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: trunk/reactos/ntoskrnl/io/iomgr/driver.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/driver.c?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/io/iomgr/driver.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/io/iomgr/driver.c [iso-8859-1] Thu Mar  4 07:26:11 2010
@@ -789,6 +789,7 @@
     * Display 'Loading XXX...' message
     */
    IopDisplayLoadingMessage(ModuleName->Buffer, TRUE);
+   InbvIndicateProgress();
 
    /*
     * Generate filename without path (not needed by freeldr)

Modified: trunk/reactos/ntoskrnl/io/iomgr/drvrlist.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/drvrlist.c?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/io/iomgr/drvrlist.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/io/iomgr/drvrlist.c [iso-8859-1] Thu Mar  4 07:26:11 2010
@@ -507,6 +507,7 @@
                 {
                     DPRINT("  Path: %wZ\n", &CurrentService->RegistryPath);
                     Status = IopLoadDriver(CurrentService);
+                    InbvIndicateProgress();
                 }
             }
         }
@@ -538,7 +539,9 @@
                 {
                     DPRINT("  Path: %wZ\n", &CurrentService->RegistryPath);
                     Status = IopLoadDriver(CurrentService);
+                    InbvIndicateProgress();
                 }
+                
             }
         }
     }

Modified: trunk/reactos/ntoskrnl/ntoskrnl.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ntoskrnl.rc?rev=45822&r1=45821&r2=45822&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ntoskrnl.rc [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ntoskrnl.rc [iso-8859-1] Thu Mar  4 07:26:11 2010
@@ -23,21 +23,20 @@
 #endif
 #define VER_LANGNEUTRAL
 #include "common.ver"
+#include "resource.h"
 
 //
 // Bug Codes and Bitmaps
 //
 #include "bugcodes.rc"
-1   BITMAP DISCARDABLE "ntoskrnl/inbv/logo/1.bmp"
-2   BITMAP DISCARDABLE "ntoskrnl/inbv/logo/2.bmp"
-3   BITMAP DISCARDABLE "ntoskrnl/inbv/logo/3.bmp"
-4   BITMAP DISCARDABLE "ntoskrnl/inbv/logo/4.bmp"
-5   BITMAP DISCARDABLE "ntoskrnl/inbv/logo/5.bmp"
-6   BITMAP DISCARDABLE "ntoskrnl/inbv/logo/6.bmp"
-7   BITMAP DISCARDABLE "ntoskrnl/inbv/logo/7.bmp"
-8   BITMAP DISCARDABLE "ntoskrnl/inbv/logo/8.bmp"
-13  BITMAP DISCARDABLE "ntoskrnl/inbv/logo/13.bmp"
-14  BITMAP DISCARDABLE "ntoskrnl/inbv/logo/14.bmp"
-15  BITMAP DISCARDABLE "ntoskrnl/inbv/logo/15.bmp"
-16  BITMAP DISCARDABLE "ntoskrnl/inbv/logo/16.bmp"
-17  BITMAP DISCARDABLE "ntoskrnl/inbv/logo/17.bmp"
+IDB_BOOT_LOGO       BITMAP DISCARDABLE "ntoskrnl/inbv/logo/1.bmp"
+IDB_HIBERNATE_LOGO  BITMAP DISCARDABLE "ntoskrnl/inbv/logo/2.bmp"
+IDB_SHUTDOWN_LOGO   BITMAP DISCARDABLE "ntoskrnl/inbv/logo/3.bmp"
+IDB_BAR_SERVER      BITMAP DISCARDABLE "ntoskrnl/inbv/logo/4.bmp"
+IDB_LOGO            BITMAP DISCARDABLE "ntoskrnl/inbv/logo/5.bmp"
+IDB_LOGO_HEADER     BITMAP DISCARDABLE "ntoskrnl/inbv/logo/6.bmp"
+IDB_LOGO_BAND       BITMAP DISCARDABLE "ntoskrnl/inbv/logo/7.bmp"
+IDB_BAR_PRO         BITMAP DISCARDABLE "ntoskrnl/inbv/logo/8.bmp"
+IDB_SERVER_LOGO     BITMAP DISCARDABLE "ntoskrnl/inbv/logo/5.bmp"
+IDB_SERVER_HEADER   BITMAP DISCARDABLE "ntoskrnl/inbv/logo/14.bmp"
+IDB_SERVER_BAND     BITMAP DISCARDABLE "ntoskrnl/inbv/logo/15.bmp"




More information about the Ros-diffs mailing list