quinta-feira, 27 de dezembro de 2007

Blue Screen of Death

Usuários do Windows já estão bastante acostumados com erros "ocasionais" que ocorrem em aplicações ou até mesmo no sistema operacional. No entanto, existe uma categoria de erros no Windows que muitas pessoas acham que não mais existem, no entanto, elas estão bem mais escondidas e aparecem com bem menos frequência que nas primeiras versões do dito sistema, que é o famoso BSOD - Blue Screen of Death.

Bem, o BSOD é um erro que acontece quando alguma operação, ou condição adversa, compromete a execução segura do sistema operacional (p.s.: um bug hehehe). Quando esta operação ou condição é alcançada, o sistema pára, lançando uma bonita tela azul indicando a morte daquela execução do sistema operacional. Isto que ocorre é normalmente chamado de "bug check". É frequentemente chamado de travamento de sistema, erro de kernel, falha geral de proteção, ou mesmo um Erro de Parada. Quando o Windows encontra tal erro sério, ele simplesmente interrompe sua execução e lança a boa e famosa Blue Screen of Death !!

Andam dizendo por aí que com o advento do Vista, estes erros estão fadados ao esquecimento, mas em testes feitos por mim, eu tenho como dizer que não será dessa vez que a Micro$oft conseguirá se libertar de tal mensagem. Quer uma dica? Experimente instalar o sistema operacional (qualquer versão) com o suporte a gerenciamento de energia desativado, e então, depois de instalado e iniciado o sistema, ativá-lo. Voìlá !! BSOD logo na inicialização do sistema.

No entanto, para erros menos graves, que normalmente envolvem o espaço do usuário ou mesmo o espaço de memória de uma determinada aplicação, o "Windows Error Reporting" do Vista é muito mais intuitivo e também melhorado em alguns pontos, provendo muitas vezes até soluções para problemas simples, que possam ser resolvidos pelo próprio usuário.

Por outro lado, os BSODs serão sempre extremamente frustrantes e traumáticos, pois são erros que quando acontecem, o sistema so volta depois de reinicializado, ou com sorte, somente depois de uma reparação do sistema.

No entanto, estamos hoje aqui para falar justamente sobre estes erros, pois apesar de o sistema ter terminado sua execução, ele deixa como sinal para nós a informação que levou ao estado atual. Vamos escovar bits hehehe

Blue Screen of Death Revealed

O texto exato do BSOD varia de acordo com a causa do erro. No entanto, o formato é padronizado e é dividido em três partes essenciais:

Parte 1: Nome Simbolico do Erro (Symbolic Error Name)
Esta é a mensagem de parada que é lançada pelo sistema operacional e que corresponde ao número do erro de parada que aparece

Parte 2: Resolução do Problema e Recomendações
Descrição resumida de como os erros podem ser resolvidos (na minha opinião, inútil)

Parte 3: Numero do Erro, e seus parâmetros
Para mim, a informação mais útil para a resolução do problema. Esta é a informação para a checagem do erro. A informação após o STOP inclui o numero de identificação do erro, em notação hexadecimal, e até 4 parâmetros, onde sua sintaxe depende exclusivamente do erro que foi lançado.

Geralmente, não há muitas opções de recuperação. Normalmente, uma técnica básica é reiniciar o pc na esperança de que o erro aconteça por causa de uma rara condição de um driver ter feito algo que normalmente não faz. No entanto, se o BSOD persistir, existem várias táticas que podem ser aplicadas para reparar o sistema, além de mais de 250 códigos BSOD documentados.

Vamos pegar como exemplo, o mais comum dos BSODs:

Código do Erro: 0xA - IRQL_NOT_LESS_OR_EQUAL

Este é um erro frequente que ocorre quando um driver tentou acessar ilegalmente uma posição de memória enquanto o sistema estava operando em uma IRQL específica. Este é um código de erro relacionado a um driver tentando acessar uma posição ilegal de memória.

Parâmetros:
1: posição de memória que foi referenciada;
2: IRQL no momento da referência;
3: 0: lendo; 1: escrevendo;
4: endereço do código que referenciou a memória.

Solução: Não há solução. É um erro fatal e uma falha na codificação do driver.


Normalmente, quando o BSOD ocorre, ele fica um tempo na tela, antes do computador reiniciar. Desta forma, fica bem difícil capturar as informações que estão contidas no relatório. Para suplantar isto, é só desmarcar a opção de reinicicar o computador em Inicialização e Recuperação, no aplicativo Sistema, do Painel de Controle.

Para aqueles realmente interessados em resolver cada BSOD que apareça, este PDF é perfeito para te ajudar, pois define cada um dos BSODs mais frequentes em sistemas Windows. Segue o link: The Blue Screen Of Death (BSOD) Primer.

Também há a opção do site da Micro$oft para verificação de erros, o Micro$oft Online Crash Analysis, que permite verificar erros que raramente acontecem, mas que você teve a sorte de descobrí-los.

Outros recursos também podem ser encontrados no site Troubleshooting Windows Stop Messages, com informações sobre como se recuperar da maioria dos erros de parada, mesmo quando a própria Micro$oft alega que somente uma reinstalação é necessária.

E, ainda para aqueles realmente aficcionados no erro, podem baixar uma proteção de tela que emula com perfeição os BSODs mais comuns: BSOD Screensaver. Ele é perfeito, pois todas as informações relativas ao erro são capturadas do próprio sistema do usuário, tornando esta proteção de tela bastante real. Detalhe, é da Micro$oft, então pode confiar hehehe.

Mais uma ainda hehehe ... E se não bastasse ter um BSOD como proteção de tela, porque não vestir um e assumir seu lado Nerd? No site Linuxmall tem uma camiseta BSOD para vender, é bem legal. Dá uma olhadinha: BSOD T-Shirt.

E como se não bastasse tudo isso, ainda há duas maneiras clássicas de se gerar um erro de Stop nos Windows. Vamos lá hehehe

Criando seu próprio BSOD no Windows XP

P.S.: Este tutorial tem como objetivo somente demonstrar como gerar um BSOD a qualquer momento. Não deve ser usado em nenhuma ocasião para disfarçar atividades pouco éticas feitas no computador com um erro de sistema lançado automaticamente. Esteja avisado !!

Bom, primeiramente abra o editor do Registro (regedit.exe);

Navegue até o nó HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters;

Vá em Editar\Novo\Valor DWORD e nomeie o novo valor: "CrashOnCtrlScroll" (sem as aspas ¬¬);

Em seguida, dê um duplo-clique (M$ Copyrighted) no CrashOnCtrlScroll, coloque o valor 1 e clique em Ok;

Feche o editor do Registro e reinicie seu computador.

Quando você quizer causar o BSOD, é só você pressionar Ctrl + Scroll Lock. Imediatamente, o BSOD irá ser lançado.

Caso seu sistema reinicie automaticamente no lugar de mostrar o BSOD, você precisará desabilitar a reinicialização automática, nas propriedades de Sistema. Se você e muito newbie para fazer isso, não faça nada do que eu falei no tutorial, pois você estará correndo o risco de ter de levar seu computador para um técnico que irá olhar para você e rir da sua cara hehehe

Mas, sério agora. E uma coisa legal de se usar quando vc está vendo "aquele" site e o chefe entra na hora na sala. No linux, um simples Ctrl+Alt+Backspace resolve, matando o X em um instante. Agora não falta mais no Windows. Agora todos temos um Panic Button para ser usado nas horas impróprias e nos momentos indevidos hauahuahau

Espero que tenham gostado do material.

Para complementar, abaixo estão, em ordem, os BSODs do Windows 98, do Windows 2000 e do Windows XP. Aproveito também para lhes apresentar o BSOD do Windows Vista, para aqueles incrédulos pecadores devassos que não acreditam em minha palavra hehehehe.

Até mais ver !!!


Windows 9x



Windows 2000



Windows XP



Windows Vista