多年来,Windows 7用户一直困惑于一个奇怪现象:当使用纯色作为桌面背景时,系统启动时欢迎界面会异常延迟(最长30秒)才会消失。这个困扰用户多年的谜题,如今终于获得了微软官方的解答。
微软的一篇支持文章证实,使用纯色背景的Windows 7和Windows Server 2008 R2用户也存在此问题。
微软资深工程师Raymond Chen给出了背后的原因,自Windows 95以来就一直使用纯色背景,以节省内存并方便错误报告。
据他介绍,Windows登录过程需要同时加载多个组件,例如任务栏、系统服务、桌面图标和背景。系统会等待所有组件发出准备就绪的信号。只有在所有组件都准备好后,或者等待30秒后,欢迎屏幕才会淡出并显示桌面。
Raymond Chen解释说,延迟30秒的原因是其中一个组件未能发送“就绪”信号。
出问题的地方在于 Report (WallpaperReady) 调用放在 LoadWallpaperBitmap 函数中,当壁纸设置后,该代码才会回报“就绪”信号;如果用户使用的是纯色背景而不是壁纸,LoadWallpaperBitmap 代码将被完全跳过,这意味着 Report (WallpaperReady) 代码将不会回报“就绪”信号,系统只能苦等 30 秒后超时。
“如果启用了“隐藏桌面图标”组策略,也可能会出现类似的问题。这是因为报告桌面图标已准备就绪的代码很可能被放在了该策略的条件检查中。”
该工程师随后表示,他从 Windows 95 开始就习惯使用纯色背景,因为当时如果使用图片壁纸的话会导致 75% 的内存被“吃掉”(当时主流配置的内存为 4-8MB),当他在 Windows 7 中设置了纯色背景后就注意到了这个问题。
微软支持文章指出,2009年11月针对Windows 7和Windows Server 2008 R2发布了解决此问题的修补程序。