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.
Hope you enjoyed this news post.
Thank you for appreciating my time and effort posting news every day for many years.
News posts... 2023: 5,800+ | 2024: 5,700+ | 2025 (till end of March): 1,357
RIP Matrix | Farewell my friend
- bigcid10
-
1
Recommended Comments
There are no comments to display.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.