From 12d0dbfe9e7140f388e7adfdd1263d68e8958439 Mon Sep 17 00:00:00 2001 From: Sir Richard Date: Thu, 4 Mar 2010 06:26:11 +0000 Subject: [PATCH] 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). svn path=/trunk/; revision=45822 --- reactos/include/ddk/wdm.h | 5 + reactos/ntoskrnl/ex/shutdown.c | 209 +++++------------------ reactos/ntoskrnl/inbv/inbv.c | 136 ++++++++++----- reactos/ntoskrnl/inbv/logo/1.bmp | Bin 20202 -> 20504 bytes reactos/ntoskrnl/inbv/logo/13.bmp | Bin 11372 -> 0 bytes reactos/ntoskrnl/inbv/logo/14.bmp | Bin 3310 -> 2870 bytes reactos/ntoskrnl/inbv/logo/15.bmp | Bin 932 -> 416 bytes reactos/ntoskrnl/inbv/logo/16.bmp | Bin 11372 -> 0 bytes reactos/ntoskrnl/inbv/logo/17.bmp | Bin 11372 -> 0 bytes reactos/ntoskrnl/inbv/logo/2.bmp | Bin 656 -> 580 bytes reactos/ntoskrnl/inbv/logo/3.bmp | Bin 878 -> 1052 bytes reactos/ntoskrnl/inbv/logo/4.bmp | Bin 262 -> 228 bytes reactos/ntoskrnl/inbv/logo/5.bmp | Bin 153718 -> 16678 bytes reactos/ntoskrnl/inbv/logo/6.bmp | Bin 2752 -> 2896 bytes reactos/ntoskrnl/inbv/logo/7.bmp | Bin 932 -> 1078 bytes reactos/ntoskrnl/inbv/logo/8.bmp | Bin 262 -> 228 bytes reactos/ntoskrnl/include/internal/inbv.h | 27 +++ reactos/ntoskrnl/include/ntoskrnl.h | 1 + reactos/ntoskrnl/include/resource.h | 23 +++ reactos/ntoskrnl/io/iomgr/driver.c | 1 + reactos/ntoskrnl/io/iomgr/drvrlist.c | 3 + reactos/ntoskrnl/ntoskrnl.rc | 25 ++- 22 files changed, 203 insertions(+), 227 deletions(-) delete mode 100644 reactos/ntoskrnl/inbv/logo/13.bmp delete mode 100644 reactos/ntoskrnl/inbv/logo/16.bmp delete mode 100644 reactos/ntoskrnl/inbv/logo/17.bmp create mode 100644 reactos/ntoskrnl/include/resource.h diff --git a/reactos/include/ddk/wdm.h b/reactos/include/ddk/wdm.h index 4f1523395da..38e5c4d3b93 100644 --- a/reactos/include/ddk/wdm.h +++ b/reactos/include/ddk/wdm.h @@ -2354,6 +2354,11 @@ typedef enum _SUITE_TYPE { SingleUserTS, Personal, Blade, + EmbeddedRestricted, + SecurityAppliance, + StorageServer, + ComputeServer, + WHServer, MaxSuiteType } SUITE_TYPE; diff --git a/reactos/ntoskrnl/ex/shutdown.c b/reactos/ntoskrnl/ex/shutdown.c index 83dd520d095..9a84bd45c19 100644 --- a/reactos/ntoskrnl/ex/shutdown.c +++ b/reactos/ntoskrnl/ex/shutdown.c @@ -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", - "\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", - "\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 @@ ShutdownThreadMain(PVOID Context) 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))]); - } - - 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 */ + /* 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(); - DPRINT1("Shutting down\n"); + /* 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); - KiHaltProcessorDpcRoutine(NULL, NULL, NULL, NULL); - /* KiHaltProcessor does never return */ + /* 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"); + } -#endif + /* Hang the system */ + for (;;) HalHaltSystem(); } - else if (Action == ShutdownReboot) + else if (Action == ShutdownReboot) { HalReturnToFirmware (HalRebootRoutine); } diff --git a/reactos/ntoskrnl/inbv/inbv.c b/reactos/ntoskrnl/inbv/inbv.c index f498ddba6a6..ca9c9013f71 100644 --- a/reactos/ntoskrnl/inbv/inbv.c +++ b/reactos/ntoskrnl/inbv/inbv.c @@ -5,24 +5,6 @@ #include #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 *******************************************************************/ KSPIN_LOCK BootDriverLock; @@ -40,6 +22,7 @@ PUCHAR ResourceList[64]; BOOLEAN SysThreadCreated; ROT_BAR_TYPE RotBarSelection; ULONG PltRotBarStatus; +BT_PROGRESS_INDICATOR InbvProgressIndicator = {0, 25, 0}; /* FUNCTIONS *****************************************************************/ @@ -407,15 +390,16 @@ VOID 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 @@ InbvSetProgressBarSubset(IN ULONG Floor, 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 @@ VOID 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 @@ DisplayBootBitmap(IN BOOLEAN SosMode) 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 @@ DisplayBootBitmap(IN BOOLEAN SosMode) 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) + /* Load the standard boot screen */ + Screen = InbvGetResourceAddress(IDB_BOOT_LOGO); + if (SharedUserData->NtProductType == NtProductWinNt) { - PBITMAPINFOHEADER BitmapInfoHeader = (PBITMAPINFOHEADER)Bitmap; - ULONG Top, Left; - - Left = (640 - BitmapInfoHeader->biWidth) / 2; - if (BitmapInfoHeader->biHeight < 0) - Top = (480 + BitmapInfoHeader->biHeight) / 2; + /* 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? */ diff --git a/reactos/ntoskrnl/inbv/logo/1.bmp b/reactos/ntoskrnl/inbv/logo/1.bmp index a2b59398aaefce650e2cb23992a365e604018bfe..d13c48d16c07e2c5fb1d83be380c54637d2ddcf5 100644 GIT binary patch delta 9588 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 b`IRqSP=oO`iefQH2k-@q@_Nw&tMdLAFZDv~ diff --git a/reactos/ntoskrnl/inbv/logo/13.bmp b/reactos/ntoskrnl/inbv/logo/13.bmp deleted file mode 100644 index 209227e9847389b213ff3d761b0033e79d8c27c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11372 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 literal 3310 zcmb_f-)kII6h1QyyVKd(VF*i_=Ess3r3mdqDOvps^y4@3*NvZL`Sx{r^zb1?{Af2!|yMVvqf zBB^Oz5>LcW*R;MJf^p8es&%6vq9d5%op0&R_kx{{j}-Frwyw< znxnNR_PD3T>4cDWoEFAz5m+w1th%S|`<&NNAoi%Q?7u^?Gp@29e6S4(J5m|FCa&1& zK-(L>*cBf*9fM=fVy+6#K*5R^LYkOX%~N*ir88hRmAn$F{LfnjAH@LI9Ah0&f z>pAjX$9Sj$J4DiYgDWYkwV7xDqU)&UB+q$VEt^@jjMs{hllzsKxf><=y77Rl=( z@!=leQzKUbT@XeGaVAtrhA>xF;GI$>Fm>ja2e=PuO{+4x$c*r(J0kTCMnQ|Pl@4b^ z2ig-Q+2?MDWB###Uj@lQBF* z4LMA#5@QMx+V_OP$b&SKh9_z)sL}%i-tg(ujDlZqwun#WQmK!F_y9nNOkYIQt;1G7 zt>=7QBnpxcCsU+P4N5jf;puwMDTQ1-Aa-;B1RhCTEHksxCV82Dj(bA=d~b=iG`yxHe)=}%L_&wcn)U~e`3u8@RmIP7{mbf z_=sD``gIVkcZnEhT9>mUz5K-nBIdG9AWi}BheMCSqfHiS57>r`WY8_a3rS4~kS$no z>Rs4rqB|3x>Ci+2(+cH{HR%{CYf&JK2isY1|KT9IpkshYW-*B8vA^$cYGve0#Z;nj z7S=I8$Y8-#r8Md;zEBU^h}W2dt1dFGf-@%TA5hcr{4GhVEeckrAQu*~(CrkQdI5td zy=FBeo;N|)J9GMv6#S&ZXYhumR9)ZXdw4vl@C)&`YqfN-$AsBQCgo+3GiuT>S)&6M z0T??YC}30u0h*R>lS#ISjq&^-6B8Oz?_FjkGC0KBEaYw0CQtZ>x7qGGPK|LXDXE!S z5m;&ws*FDze-3$(PCyF-iqBndo$++p7JPXnGXu`QY8R$kz(+(o6uO+AgQ zcMCm@mm923fv4t#+Hu%(-)(N);Ey{BLoA?_S*AoLm) zR)`Wf2B3zGSye!l4)*arg0<9(9k~ebv7y{WbyRo_!JP5PKpXQF6zm)Dm^_j-gISJ*yT2h={eN*F>jBOU)>@Io&-Qf7|&1{Z3xb zAc5k(soaEC^dD6~mKVW%ucb;pt@f+9rLBlu?qc4%hk=RC?RH;CWboay1C zH@L~lFoceWtmp4TLQbUAoW)q34mW{JUrN3JnRYPKi`5wuCi!HZmiK+goSZ;7&h)gn zmTDG&kvg1oBKw-u;-lA@zA1;-L|>DI0=1xbWJ<2bxfx;*`Ab$ancty>Hd}|;U&MOA zz#Uf&(^HMbJ=JNSeT2-T%2^eSzGJP0RxHq3WK1JvgM|oXs9Q1v)ER8%Jop=1>>$*3 z`-HIq=p$A+?g}p@U7@8K1sPNK#}R3-_hpbDo4hehhw7q3T|p#Hp+BADzP+fkll{Gj zPpA7EZY=Dk^}E=|qAwQTuAwTgY5PeyOJ?oXDIq%=WE2^+ ztqJDXEK}%kUNTGuCkM(M<$?in`IZ+M`BsLgtTNnIak=KPp4xQT9yZy?fb?0U5gVmV zq+)$6fv!YTOC`Ce&^9X6g7baEluHc1VTGZ;h?X_pg<*hbTu} z__0q4&_xkXX@a(&mTVP^t3a73Z#b0|vEE5GK{DoPvf(d@|5uDvLnEP@TCi4-R6|ya F#xKn_e&YZD literal 932 zcmXYwv1{8v6vn@(#vF$*wg|z5P->}#P8pJY6Tv$Eqc+G zN6?cfO5%tm(9<|h(qx=!xt?kHVS%%?z)4nQd6A`go~3D?4N@@re9B`OQ5;cO zG=N9ihHZI>@p`?c>PZ7BVSzSdzV5+rU1#bzj^%(^%*4=`OeV%?H0r1v8>5M75Ek3A zEF0Xx`P6ki*YjpG&-aOoBD0v!7mCYr4Hm-KY{Km}+D04tHl8LiRiS#)(IG;53Z7+D zHdqE;C=v9)VkZ`R?m7+B#ktDU#%sk}` zSFzA7@``B_wLZB=xd?o;kGToHXT}`nau3|6?LK(G<`^nk>vgzdp|)k4!w7wKQhJO& zRfBPgUY7D4y&^LT@KOj-Vq8IQI)O(Lyc3Oat0IaqZlHJaC9UIRIw3%N`(zLBT+1kD vmwS+C@ez4;FOyu+TdmjD$r!xI5;0A- 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 literal 656 zcmZ`$F-XHu5PgY78i!n`LKUS}5GPx~L9mmEgCIHyiqL@IBy>^dZh{DHCqaZ_?c(U< z>fm6Zn#n~s3*zP%G^iB5cS(xW*8JT6FYoT%e_ZC4N+$egkM{|VxB(EK1|pEuV3=o! zSQvtnBSRP)9Y#7miRIZOwpOOFnOn#H&Kiymc5z-i#`R?t_w@_hHtKkKY~ZE&0Po`+ z^FTyar3>32eXcyb}!sL6}TDwes7tz{6{&D-Of+F2^+vf&IR1)1P z&9#9eo6k2;hN~EfW5E>br3xo=7QM2ZL$osV+^=w&3sj7)LZZiAp(@`>8g3KbD`mBV s;wNdDr{Kz0mnz1#`30qT95bC$4sxs=he^{NIh&b{4raT@m;d*TAB1_BlK=n! diff --git a/reactos/ntoskrnl/inbv/logo/3.bmp b/reactos/ntoskrnl/inbv/logo/3.bmp index 7e95ca2b6626939edb886d5efac15b88fcd883f1..c10b768de5f072be88e3b4753a87c88542fdf5ce 100644 GIT binary patch literal 1052 zcmb_aJxc>Y5Pi9<$8ttjg9b4YQrakK1hKHNNN1Ja&dT00cA|wA{)qel>--AA&L6R0 zVG~&2n@tQ+A{O4=-hRx?+c)#(?0nC`o@@U1IbJzdIcjhyIFIT;lLs2#pY7c)`u#p$ zP7hGK9AM?>8N=Zac)G{r<^tWT52Vop+}k7C<9Ce5V@xI!+@c6Qjy3`BP{hOO8a~Ak zNvMn=p#-)90#f8Ja93%S;37@g?gJe?;CPzQK-8N(73qmBG{%{W**Xm6XRcvt*@S@X zjFig2RcWyn?*jNW!~%i0dD+RrD}eZwVX$2cDBS62Qemlkqm& zx@>%PTGu?|0?%mOl@XagX$ZxOwV)8m><>&zL0J5pOU}}8=3JDoXMdd)SPM*6D7)5 zCn-aPY;LKk_{GeGJ*OTILRpUiKZyPhVNIZ{%*J_lB)#VX_&7 m3}(6isyeL=kM*amJb#YapC=1esH<__oA^TFTeix!jEIMa0l$4H zKL2GVIFI_bUXx zqi^i{Dy__a*f{#BjQNHP&FdOC&vy&=`+$HlcfF~qNjgu@H1c(msbLW-*#u1lgy}rD zOWP%DqPr<=c%-kKq-R2>6UVwnYlQ0G%AjzOBPQTRv#woDfK`|KxhbQg^IfnGL}uM1 z*T#1=mDPP(dPY`J;%>Rf#ED?-ZYU?2*4>XH7|ihXhSVal0R}ile~tx#$x|zQ;jul& OHyYd6o+aMnU+N#O=k?hD diff --git a/reactos/ntoskrnl/inbv/logo/4.bmp b/reactos/ntoskrnl/inbv/logo/4.bmp index 239307b7d958d8eb4fc4a02dd93580eb85ecfb30..7aabbbfeb6e5dd2210fcff4e601d6f547b3f1ce2 100644 GIT binary patch literal 228 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 literal 153718 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 diff --git a/reactos/ntoskrnl/inbv/logo/6.bmp b/reactos/ntoskrnl/inbv/logo/6.bmp index a8cafc569c0188a2924198976b4028ab993bb3fc..08344117cb2503f2dacdf0fbffc236b265fdd9a6 100644 GIT binary patch literal 2896 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 CApZ9N diff --git a/reactos/ntoskrnl/inbv/logo/7.bmp b/reactos/ntoskrnl/inbv/logo/7.bmp index d137807c9f9e4cb7aabc26f1bae1810406603e16..24ea213775819825d84abff14a57b3a683af51d3 100644 GIT binary patch literal 1078 zcmb`GuTR5J5XX-ne+f0{tyzK~0s8U`A(-(Wyu4HZatR3nRmvO$GlPY+!4X7j=5b3< zQ%EcdH@SCyD zW4RlP)_$X%Kn`=XW9?kO9SR2KHSTeFxe0;IL#Rn0EKXUTXl!&38Jre2qSFHA!95B8 zcd#gmvgD8>)E3S!#rPU2Ny5WLND+A0HPQ%nLeLgQ*d2oav@>nj^f?Fu{VH-@u+HVC z}#P8pJY6Tv$Eqc+G zN6?cfO5%tm(9<|h(qx=!xt?kHVS%%?z)4nQd6A`go~3D?4N@@re9B`OQ5;cO zG=N9ihHZI>@p`?c>PZ7BVSzSdzV5+rU1#bzj^%(^%*4=`OeV%?H0r1v8>5M75Ek3A zEF0Xx`P6ki*YjpG&-aOoBD0v!7mCYr4Hm-KY{Km}+D04tHl8LiRiS#)(IG;53Z7+D zHdqE;C=v9)VkZ`R?m7+B#ktDU#%sk}` zSFzA7@``B_wLZB=xd?o;kGToHXT}`nau3|6?LK(G<`^nk>vgzdp|)k4!w7wKQhJO& zRfBPgUY7D4y&^LT@KOj-Vq8IQI)O(Lyc3Oat0IaqZlHJaC9UIRIw3%N`(zLBT+1kD vmwS+C@ez4;FOyu+TdmjR-P7i #include "internal/probe.h" +#include "resource.h" // // Define the internal versions of external and public global data diff --git a/reactos/ntoskrnl/include/resource.h b/reactos/ntoskrnl/include/resource.h new file mode 100644 index 00000000000..b9bdd541a11 --- /dev/null +++ b/reactos/ntoskrnl/include/resource.h @@ -0,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 diff --git a/reactos/ntoskrnl/io/iomgr/driver.c b/reactos/ntoskrnl/io/iomgr/driver.c index 4dc022fb93f..c9925d5eb28 100644 --- a/reactos/ntoskrnl/io/iomgr/driver.c +++ b/reactos/ntoskrnl/io/iomgr/driver.c @@ -789,6 +789,7 @@ IopInitializeBuiltinDriver(IN PLDR_DATA_TABLE_ENTRY LdrEntry) * Display 'Loading XXX...' message */ IopDisplayLoadingMessage(ModuleName->Buffer, TRUE); + InbvIndicateProgress(); /* * Generate filename without path (not needed by freeldr) diff --git a/reactos/ntoskrnl/io/iomgr/drvrlist.c b/reactos/ntoskrnl/io/iomgr/drvrlist.c index 07068452fb0..42b69c6e2bd 100644 --- a/reactos/ntoskrnl/io/iomgr/drvrlist.c +++ b/reactos/ntoskrnl/io/iomgr/drvrlist.c @@ -507,6 +507,7 @@ IopInitializeSystemDrivers(VOID) { DPRINT(" Path: %wZ\n", &CurrentService->RegistryPath); Status = IopLoadDriver(CurrentService); + InbvIndicateProgress(); } } } @@ -538,7 +539,9 @@ IopInitializeSystemDrivers(VOID) { DPRINT(" Path: %wZ\n", &CurrentService->RegistryPath); Status = IopLoadDriver(CurrentService); + InbvIndicateProgress(); } + } } } diff --git a/reactos/ntoskrnl/ntoskrnl.rc b/reactos/ntoskrnl/ntoskrnl.rc index 4ede1c557de..090bff5e44d 100644 --- a/reactos/ntoskrnl/ntoskrnl.rc +++ b/reactos/ntoskrnl/ntoskrnl.rc @@ -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"