Segredos do WindowsLembre-me de nunca fazer isso novamente

Raymond Chen

Há uma ferramenta antiga para a série Windows® 95 de sistemas operacionais que é conhecida como ASD, Automatic Skip Driver (Ignorar driver automaticamente). A sua primeira reação à essa ferramenta pode ter sido de estranheza em função do nome, e você pode até mesmo ter suspeitado que as letras ASD tivessem outro significado. E você estaria totalmente certo.

O Windows 95 precisava lidar com vários dispositivos que não eram do tipo Plug and Play porque a grande maioria dos sistemas da época eram anteriores à especificação Plug and Play. A detecção de hardware na ausência de dispositivos adequados de Plug and Play era muito arriscada.

Por exemplo, a detecção de modem era realizada pela emissão de consultas de valores de vários registros de modem. Embora houvesse um conjunto de comandos de modem básico razoavelmente bem estabelecido, havia uma variação significativa na implementação de partes mais obscuras da linguagem de comando. Obviamente, essa inconsistência foi frustrante para programas de comunicações, pois requeria o acréscimo de casos especiais para vários modelos de modem, a fim de acomodar suas peculiaridades. No entanto, a inconsistência foi um benefício inesperado ao Windows: como cada modem tinha um comportamento sutilmente diferente, o Windows podia investigar esses pontos obscuros e comparar o comportamento do modem em relação a uma tabela de modems conhecidos e suas respostas.

  

Havia uma pessoa na equipe do Windows 95 cujo trabalho era instalar todos os tipos de modem e executar um pequeno programa que colocava o modem em funcionamento, explorava os pontos obscuros e coletava os resultados de cada um, de modo que um banco de dados de modem completo pudesse ser criado. Se você ainda tiver acesso a uma máquina executando o Windows 95, poderá dar uma espiada no diretório Windows\Inf e verificar todos esses arquivos cujos nomes iniciam com MDM. Há mais de um megabyte de arquivos de informações sobre dispositivos dedicados a modems. Isso significa alguns anos da vida de alguém recolhidos em um megabyte de números hexadecimais não legíveis.

A detecção de modems era muito segura, pois praticamente todos os modems se comportavam da mesma forma em um nível elevado; o atrativo estava todo nos detalhes. Muito mais assustadores eram os dispositivos que utilizavam portas de E/S. Por exemplo, para detectar se uma placa de vídeo específica havia sido instalada, o módulo de detecção de placa de vídeo do Gerenciador de Configurações do Windows 95 enviava valores cuidadosamente selecionados para portas de E/S específicas e fazia a escuta de quaisquer respostas a partir do dispositivo. Se o dispositivo respondesse imediatamente, então se pressupunha que ele havia encontrado o que estava procurando. Caso contrário, ele passava para o próximo modelo de placa de vídeo.

É claro, se o dispositivo instalado nessa porta de E/S não fosse a placa de vídeo sendo testada pelo Gerenciador de Configurações, valores sem sentido enviados não teriam qualquer utilidade. Dependendo do dispositivo, ele poderia parar ou reiniciar a máquina. Isso não era muito útil para o Gerenciador de Configurações. Foi assim que surgiu o módulo conhecido como ASD.

Antes de realizar esses testes de hardware potencialmente catastróficos, o Gerenciador de Configurações criava um arquivo que dizia basicamente, "Essa não! Estou prestes a danificar X!". Essa era a versão do computador do envelope clássico "Abra caso eu morra", que o herói de um filme de ação deixava com sua namorada antes de sair para uma missão suicida para combater o bandido.

Se o dano realmente fizesse com que o computador fosse interrompido, falhasse ou reiniciasse, então, na próxima vez que o sistema fosse iniciado, ele veria esse arquivo mágico e "abriria o envelope" para ver se esse dano seria o responsável pela falha do computador. O sistema então concluiria que a tentativa de detectar o dispositivo X era catastrófica e nunca mais faria isso novamente!

O módulo que fazia esse trabalho era chamado de ASD. As letras ASD representavam "Attempting Something Dangerous" (tentando algo perigoso).

Raymond Chenpossui o site The Old New Thing (A velha novidade), e escreveu um livro homônimo (Addison-Wesley, 2007) para tratar da história do Windows e da programação Win32. Ele é cauteloso pois o assunto é delicado.

© 2008 Microsoft Corporation e CMP Media, LLC. Todos os direitos reservados. A reprodução parcial ou completa sem autorização é proibida..