On sait enfin pourquoi certains fonds d’écran ralentissaient Windows 7

 
Un simple fond d’écran pouvait ralentir le démarrage de Windows 7 de plusieurs dizaines de secondes. Si le coupable a été désigné au bout de quelques mois, on connait maintenant les explications techniques de cet étrange bug.
Qu’elle nous manque (ou pas) cette interface // Source : Microsoft

Les bugs et Windows sont deux concepts indissociables. Le système d’exploitation de Microsoft est réputé pour ses nombreux bugs plus ou moins étranges à chaque nouvelle version majeure ou simple mise à jour Windows Update.

Si récemment, Windows 11 a continué sur cette belle tradition, notamment depuis sa version 24H2, il est loin d’être le seul. L’un des systèmes les plus appréciés de l’histoire de Microsoft, Windows 7, a subi pendant quelques mois un bug étrange au courant de l’année 2009 : l’écran d’accueil mettant parfois plus de 30 secondes avant de laisser place au bureau.

Plusieurs mois après, le coupable a été trouvé : le fond d’écran. Si celui-ci est d’une seule couleur unie, alors le démarrage de Windows 7 peut prendre un temps anormalement long. Il avait donc été conseillé d’utiliser une image en tant que fond d’écran pour résoudre le problème.

Mais pourquoi un fond d’écran aussi simple pouvait ralentir à ce point le démarrage du système ? Un ingénieur historique de Microsoft dévoile l’explication derrière un bug aussi ennuyeux qu’étrange.

Pour aller plus loin
Microsoft veut vous inciter à passer sur Windows 11 24H2 en rendant les anciennes versions moins sécurisées

Windows 7 n’aimait pas votre bureau minimaliste

Raymond Chen, ingénieur de longue date chez Microsoft, est devenu aussi l’un des historiens officiels de la firme via le blog The Old New Thing. Dans son dernier article, il détaille pourquoi les fonds d’écran aux couleurs unies posaient autant de soucis à Windows 7 à son lancement en juillet 2009.

De base, les différents composants de votre bureau sont chargés au démarrage de Windows 7 : barre des tâches, services en arrière-plan, les icônes sur votre bureau et enfin votre fond d’écran.

Le système de connexion attend que tous ces éléments signalent qu’ils sont prêts et, lorsque tout le monde a donné son feu vert, ou que 30 secondes se sont écoulées, le système de connexion quitte l’écran de bienvenue.

En clair, si tous les éléments ne sont pas prêts, le bureau s’affiche au bout d’un délai de 30 secondes. Sauf qu’un morceau de code concernant le fond d’écran était victime d’un angle mort :

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

Sans avoir de notion de code, on peut deviner la source du problème avec ces quelques lignes. Lors de l’initialisation du fond d’écran, le système s’attend uniquement à un fond d’écran dit « bitmap » avec la fonction (LoadWallpaperBitmap(), correspondant aux données d’une image numérique présente sur le disque dur.

Si vous aviez choisi un fond d’écran avec une seule couleur via les paramètres de Windows 7, alors le système ne pouvait tout simplement pas envoyer de rapport positif sur le chargement de cet élément lors du démarrage via la commande Report(WallpaperReady).

Le problème touchait aussi les utilisateurs qui avaient activé la stratégie de groupe Windows « Cacher les icônes du bureau ». Dans les deux cas, l’utilisateur devait alors attendre 30 secondes pour accéder à son bureau.

Raymond Chen précise que ce délai avait tout d’artificiel et n’était en aucun cas dû à un souci de performance, juste à une logique de code tout simplement bancale.

Un correctif a été déployé quelques mois après la sortie de Windows 7, en novembre 2009. Suffisamment de temps pour que de nombreux utilisateurs se posent des questions sur ce qui pouvait clocher avec leur configuration.


Envie de rejoindre une communauté de passionnés ? Notre Discord vous accueille, c’est un lieu d’entraide et de passion autour de la tech.