Imagine mudar o papel de parede do seu PC para uma cor azul, verde ou preta, e o Windows estranhamente mostra a tela de boas-vindas por 30 segundos depois que você digita sua senha. Felizmente, não estou falando do Windows 11. O problema estava no Windows 7 favorito do público e durou alguns meses antes de ser corrigido em novembro de 2009.
Uma cor sólida é possivelmente a coisa mais fácil para o Windows renderizar, pois não há nenhuma imagem para decodificar ou um grande bitmap para carregar. E, no entanto, logo após o lançamento do Windows 7, uma configuração inocente como essa poderia tornar o login mais lento. Aqui está o que aconteceu:
O Windows 7 não estava gastando 30 segundos carregando uma cor
Depois que sua senha é aceita, o Windows não muda para a área de trabalho em um instante. A barra de tarefas deve ser carregada, os serviços em segundo plano devem ser inicializados, os ícones da área de trabalho precisam ser preenchidos e o papel de parede deve ser impresso na tela.
O sistema de logon aguarda que cada uma dessas peças informe que está pronta e, uma vez que a última faça o check-in, ou uma vez que 30 segundos se passem, o que ocorrer primeiro, ela passa pela tela de boas-vindas.
No entanto, quando uma cor sólida foi definida como plano de fundo da área de trabalho, a tela de boas-vindas sempre optou por esperar 30 segundos. A Microsoft documentou esse problema para o Windows 7 e o Windows Server 2008 R2 e confirmou que a mudança para um arquivo de imagem fez com que o atraso desaparecesse.
“Esse problema não ocorre quando uma ou mais das seguintes condições são verdadeiras:
O componente de papel de parede pode enviar seu sinal "Estou pronto" somente quando estiver dentro do caminho do código que carregou um arquivo de imagem. Então, quando você escolhe uma cor sólida, esse caminho de código não é executado e o sinal não é enviado.
O Windows 7 espera por uma mensagem que não aparece e, 30 segundos depois, desiste e mostra a área de trabalho de qualquer maneira. Aqui está o processo passo a passo:
O bug não significava que o Windows estava fazendo 30 segundos de trabalho extra. Todos os outros componentes poderiam terminar em cinco segundos, e a tela de Boas-Vindas ainda ficaria pendurada por 30, porque o sistema não tinha como saber a situação do papel de parede. Estava apenas esperando por um relatório que logicamente não poderia chegar.
"Observe que, em ambos os casos, não é que o logon seja estendido por 30 segundos", disse Chen no blog The Old New Thing, "em vez disso, a tela de boas-vindas permanece ligada por 30 segundos completos, em vez do tempo real que levou para todos os sistemas relatarem pronto (que pode ser de 5 segundos, ou pode ser de 25 segundos, dependendo do desempenho do seu sistema)."
Um sinal ausente foi suficiente para enganar todo o processo de logon
“O código para informar que o papel de parede está pronto estava dentro do código do bitmap do papel de parede, o que significa que, se você não tiver um bitmap do papel de parede, o relatório nunca é feito e o sistema de logon espera em vão por um relatório que nunca chegará. - Chen explicou.
O engenheiro de longo prazo da Microsoft também mencionou um bug relacionado envolvendo a Política de Grupo. A ativação das políticas "Ocultar todos os ícones na área de trabalho" e "Papel de parede normal" juntas causou o mesmo atraso de 30 segundos, por um motivo quase idêntico.
O código original que inicializou os ícones da área de trabalho relatou a conclusão assim que foi concluído. Quando a Microsoft adicionou suporte à política mais tarde, o trabalho de inicialização foi envolvido dentro de um bloco "se permitido pela política", e o relatório de conclusão acabou preso dentro desse mesmo bloco. Desative os ícones por meio da política e o relatório não será acionado.