Windows 7 to report boot progress again, like Windows 2000

(Apologies to RSS subscribers -- I discovered my previous “first Windows to report progress” claims were incorrect so I pulled the post to make some corrections)

One of the lesser appreciated elements in Windows is the boot screen. After all, it’s short-lived and is synonymous with waiting, the last thing we all want to do when powering up/resuming our machines.

Windows 1.0 boot graphic

Windows 1.0 boot graphic

Back in the day, boot screens were completely static and/or utilized palette swapping trickery [Windows 95 boot graphic not shown] to give the illusion of an animated progress bar to indicate Windows hasn’t hung.

Windows XP boot graphic

Windows XP boot graphic

Newer boot screens retained many of their original roots (e.g. bitmaps, useless scrolling animation), but were a complex composite of various resources strewn about the disk (e.g. scrolling animation, Windows logo, text in different languages).

Windows "7" 6801 boot graphic

Windows 7 PDC Build 6801 boot graphic

In Windows 7, the boot screen is simplified in many ways. It comprises of a single bitmap, loaded from a small Windows Imaging (WIM) file at runtime, and some text rendered on-the-fly. The approach of stuffing a small bitmap inside a WIM may seem a little overkill right now but this was likely done to future-proof boot reporting. I won’t be surprised if we see other boot-related resources (e.g. sounds) housed within the WIM in the near future...

Frame size in PDC build.

In the PDC build of Windows 7 (6801), each frame is 225x34.

 

The aforementioned 24-bit bitmap, named activity.bmp, lives inside a small pineapple WIM under the sea within the new bootres.dll resource library. This bitmap contains frames that are glued together vertically and smoothly played back at roughly 30 frames per second (fps).

Boot Activity Bitmap Viewer utility

Utility showing the four different sets of scroll-bar animations

The most interesting part of the new bitmap is that it comprises of four frame sets, each designed to be animated separately to indicate where Windows is at in the boot process (e.g. kernel, system driver initialization), similar to what was seen in Windows 2000.

Before you think about cracking open your resource editor and replacing system files, be aware winload.exe, the Windows Boot Loader, has a list of critical files (e.g. ntoskrnl, tmp.sys) that are checked for valid digital signatures. bootres.dll and its associated MUI are now on this Sinofsky-like list, an intentional move to secure the Windows 7 brand. This means any modification of these files will result in Windows 7 falling back to the Windows Vista-style boot graphics. To workaround this behavior, you’ll need to patch the Windows Boot Loader itself, or keep a kernel debugger attached at all times. Yuck. [Nitpicker corner: I have not gone down the noguiboot path]

Obligatory I-tried-to-learn-more-about-Windows-but-got-shot-down quote has been duplicated for your convenience below:

"At this time, Microsoft has no information to share about boot time graphics in Windows 7. Please note that Microsoft works extremely closely with OEMs to provide rich opportunities for customization and differentiation." - Microsoft Spokesperson

Now to dig into the new 200x200 boot screen...