When you purchase through links on our site, we may earn an affiliate commission. Here’s how it works.

Microsoft engineer reveals why solid color backgrounds slowed Windows 7 logins

Windows 7 logo

A week ago, we reported on how Windows 11 resurrected a 20-year-old bug in GTA San Andreas by changing how it handled memory, exposing an old flaw in the game's code. It turns out Windows has had its share of quirky, hidden behaviors over the years, and a recent explanation from a long-time Microsoft engineer highlights another fascinating historical example.

Back in 2009, around the time Windows 7 was released, members of the Neowin forum, and users elsewhere, began reporting a puzzling issue: the welcome screen sometimes took an unusually long time, up to 30 seconds, to disappear after logging in. This delay seemed particularly tied to a specific, simple setting involving a solid color chosen as the desktop background. A Microsoft Support article later confirmed this issue existed for Windows 7 and Windows Server 2008 R2 users with solid color backgrounds.

Raymond Chen, a long-time Microsoft engineer and author of the blog The Old New Thing, recently explained the technical reason behind the odd login delay. According to Chen, who has used a solid color background since Windows 95 to save memory and make bug reporting easier, the Windows login process involves several components loading at once, like the taskbar, system services, desktop icons, and the background. The system waits for all of them to signal they are ready. Only after getting the all-clear, or after 30 seconds pass, does the Welcome screen fade and the desktop appear.

The reason for the 30-second delay, Chen explains, was that one of these components failed to send its "ready" signal. He illustrates this with a simplified example of what the code for loading the wallpaper might have looked like:

InitializeWallpaper()
{
    if (wallpaper bitmap defined)
    {
        LoadWallpaperBitmap();
    }
}

LoadWallpaperBitmap()
{
    locate the bitmap on disk
    load it into memory
    paint it on screen
    Report(WallpaperReady);
}

The crucial part, Chen points out, is that the Report(WallpaperReady) call was placed inside the LoadWallpaperBitmap function. This function only runs if a "wallpaper bitmap" is defined. If you selected a solid color instead of an image, the LoadWallpaperBitmap function was skipped entirely, meaning the Report(WallpaperReady) line was never executed. The login system kept waiting for this signal, which never came, eventually hitting its 30-second timeout before proceeding to show the desktop.

Chen notes that a similar problem could occur if you enabled the "Hide desktop icons" group policy. This was because the code that reported desktop icons as ready was likely put inside the conditional check for that policy.

// Original code
InitializeDesktopIcons()
{
    bind to the desktop folder
    enumerate the icons
    add them to the screen
    Report(DesktopIconsReady);
}

// Updated with group policy support

InitializeDesktopIcons()
{
    if (desktop icons allowed by policy)
    {
        bind to the desktop folder
        enumerate the icons
        add them to the screen
        Report(DesktopIconsReady);
    }
}

If the policy prevented icons from showing, the report call was skipped there too, leading to the same 30-second timeout on the Welcome screen. It is important to understand, Chen emphasizes, that the login process itself did not necessarily take an extra 30 seconds to complete all its tasks. The Welcome screen just stayed visible for the full 30-second timeout because one specific component failed to report its completion, even if all other parts of the login had finished loading much sooner.

As the Microsoft Support article indicates, a hotfix addressing this problem was released for Windows 7 and Windows Server 2008 R2 in November 2009.

Report a problem with article
LG WING Smartphone
Next Article

LG's dead smartphone lineup will stop getting software updates soon, install them now

msi Optix MAG342CQR
Previous Article

This ultrawide curved 34 inch FreeSync monitor can be the best upgrade for your gaming PC

Join the conversation!

Login or Sign Up to read and post a comment.

11 Comments - Add comment