O Registro do Windows 9.x
Por Gabriel Torres em 06 de novembro de 1998
Introdução
O Registro é um grande banco de dados utilizado pelo Windows 9x para o armazenamento de informações referentes a programas e periféricos instalados, além de informações sobre preferências dos usuários. Ele já existia no Windows 3.x, porém era pouco utilizado pelos programadores, que preferiam a utilização de arquivos do tipo "INI".
Para quem não sabe, arquivos INI armazenam informações de configuração de um determinado programa. O próprio Windows utiliza basicamente dois arquivos INI para armazenar suas configurações: Win.ini, que armazena informações sobre programas instalados e System.ini, que armazena informações sobre periféricos instalados (hardware). No caso do Windows 3.x, cada programa criava um arquivo INI próprio. Por exemplo, o Word 6 criava e utilizava um arquivo chamado Winword6.ini para armazenar suas configurações - como, por exemplo, o diretório onde o Word ia buscar seus modelos.
A utilização de arquivos INI apresentava alguns problemas. Para começar, quanto mais programas instalados em seu micro, mais arquivos INI eram criados no diretório do Windows. Programas antigos em sua maioria não possuíam assistentes para a sua desinstalação do micro. Com isso, muito usuários, para remover o programa do micro, acabavam simplesmente apagando manualmente o diretório ocupado pelo programa (com o comando Deltree ou similar) e seus ícones no Windows. É claro que a maioria acabava esquecendo de apagar os arquivos INI do programa que ficavam armazenados no diretório do Windows (aliás, esse procedimento ainda tinha um agravante: a maioria dos programas acrescenta arquivos DLL no diretório do Windows; simplesmente apagar o diretório do programa não faz com que esses arquivos sejam apagados, fazendo com que arquivos ocupem inutilmente espaço no disco rígido do micro).
Outro problema é que arquivos INI são facilmente editáveis através de qualquer editor de texto, já que são arquivos ASCII (TXT). Uma simples mudança mal feita pelo usuário em um arquivo INI pode fazer com que o programa deixe de funcionar - ou mesmo o Windows inteiro, caso o usuário faça alguma besteira nos arquivos Win.ini e System.ini.
Talvez o maior problema seja na organização. O conteúdo de arquivos INI pode ser editado e colocado em qualquer ordem. Ao acessar um arquivo INI, o programa terá de filtrar o arquivo e buscar exatamente a informação que procura. Isso pode tomar algum tempo extra. O Registro, ao contrário de arquivos INI, é totalmente organizado; quando um programa necessita buscar uma informação, ele simplesmente sabe onde ela está armazenada: não é necessário filtrar o Registro. Com isso, a busca por informações no Registro é muito mais rápida do que em arquivos INI.
O papel do Registro é armazenar todas as informações que antes eram armazenadas em arquivos INI e muito mais. No Windows 9x, por motivos de compatibilidade, os arquivos System.ini e Win.ini continuam existindo. Programas antigos (por não conhecerem o Registro) ou mal escritos (preguiça do programador em aprender como o Registro funciona) continuam criando e usando arquivos INI armazenados no diretório do Windows em vez de usar o Registro.
O Registro é bastante enigmático. Isso foi feito de propósito, de modo a dificultar a sua manipulação por usuários xeretas. Ele é armazenado em um formato próprio e que só pode ser lido e manipulado por programas específicos. O Windows 9x vem com um programa editor de registro, chamado Regedit. Esse programa não possui atalho no menu Iniciar, justamente para não facilitar sua edição. Você pode chamá-lo simplesmente executando o arquivo c:windowsregedit.exe e, caso queira virar um "expert" em Registro, sugerimos criar um atalho para ele ou na Área de Trabalho ou no menu Iniciar. Ao executar o Regedit, tome o cuidado de somente ler os dados contido no Registo e nunca alterá-los (pelo menos por enquanto).
Fisicamente falando, o Registro está armazenado em dois arquivos: System.dat e User.dat. Esses arquivos estão ocultos no diretório do Windows. É interessante notar que muitas informações do Registro são dinâmicas e colhidas durante o boot do micro (por exemplo, as configurações de dispositivos Plug and Play não são armazenadas nos arquivos do Registro, mas sim lidas do periférico durante o boot). Mesmo não estando armazenadas em nenhum arquivo, informações dinâmicas ficam disponíveis no Registro, para que programas possam facilmente acessá-las através do Registro.
clique para ampliar
Figura 1: O Editor de Registro (Regedit.exe).Chaves Básicas
Se você teve a curiosidade de executar o Editor de Registro (Regedit), deve ter reparado que o registro é composto por uma estrutura hierárquica similar à estrutura de diretório do disco rígido do micro. Se você consegue "navegar" pelo Windows Explorer não sentirá nenhuma dificuldade em navegar pelo Editor de Registro.
O Registro é formado de 6 chaves básicas (listamos na ordem em que aparecem no Editor de Registro):
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_USERS
- HKEY_CURRENT_CONFIG
- HKEY_DYN_DATA
Em cada chave é armazenado um tipo diferente de informação. Iremos ver como funciona cada chave e qual o tipo de informação há armazenada. Sempre que possível iremos apresentar dicas que sejam válidas para todos os micros. É muito importante notar que não há como fazermos um tutorial válido para todos os micros, pois em cada micro o Registro será um pouco diferente, já que os programas e periféricos instalados varia de micro para micro.
HKEY_LOCAL_MACHINE
Essa é a chave mais importante do Registro. É nela que estão armazenadas informações a respeito dos periféricos e programas instalados no micro - incluindo a configuração do próprio Windows 9x. Fisicamente falando, as informações dessa chave estão armazenadas no arquivo System.dat. Essa chave possui as seguintes subchaves:
Config: Armazena configurações para os Perfis de Hardware instalados no micro. Na maioria das vezes temos somente um perfil de hardware instalado e, daí, essa chave normalmente apresenta somente uma subchave - 0001 - que contém informações sobre esse único perfil. Caso você crie novos perfis de hardware (o que pode ser feito através da guia Perfis de Hardware do ícone Sistema do Painel de Controle) novas chaves são criadas. Durante o boot o Windows 9x carrega a configuração do perfil de hardware selecionado para a máquina.
Enum: Informações sobre o hardware do micro.
hardware: Informações sobre portas seriais e modems utilizados pelo programa HyperTerminal (como você pode reparar, o nome dessa chave pode enganar muita gente).
Network: Informações criadas quando um usuário se conecta a um micro conectado em rede. Armazena informações como nome do usuário, logon, tipo de servidor, etc.
Security: Informações sobre a segurança da rede e administração remota.
SOFTWARE: Informações e configurações de programas instalados no micro. Nessa chave as informações são armazenadas no padrão fabricante/programa/versão/configurações. Por exemplo, configurações do programa Photoshop são armazenadas na chave Adobe/Photoshop/4.0. Interessante notar que as configurações do próprio Windows estão armazenadas nessa chave, em Microsoft/Windows.
System: Essa chave comanda o carregamento de drivers durante o boot e demais configurações do sistema operacional. A subchave Control contém informações utilizadas durante o carregamento do sistema operacional, enquanto a subchave Services contém informações sobre o carregamento de drivers de dispositivo.
clique para ampliar
Figura 2: Visão geral da chave HKEY_LOCAL_MACHINE.HKEY_USERS
O Windows 9x permite que mais de usuário utilize um mesmo micro, cada um com suas configurações particulares, tais como proteção de tela, papel de fundo, atalhos presentes na área de trabalho, etc. A escolha do usuário é feita no logon do Windows, quando o sistema pede o nome do usuário e sua senha. Essa chave armazena as configurações do sistema para cada usuário e fisicamente está armazenada no arquivo User.dat.
Quando o sistema está configurado para o acesso por apenas um usuário, a chave HKEY_USER contém apenas uma subchave, .default, contendo todas as configurações pessoais do sistema (proteção de tela, papel de parede, etc).
No caso de haver mais de um usuário configurado no sistema, quando ele faz logon no sistema, essa chave conterá suas configurações pessoais. Por exemplo, no caso de haver um usuário chamado Fabiano, existirá uma chave chamada "Fabiano" quando esse usuário entrar no sistema. A chave .default continuará existindo, contendo as configurações padrão do sistema.
Interessante notar que nessa chave só estão disponíveis as configurações pessoais do usuário que fez logon do sistema. Se no mesmo micro existir um outro usuário chamado Tadeu, a chave "Tadeu" só existirá quando o próprio Tadeu fizer logon no sistema, de forma que um usuário não consiga ver nem alterar configurações de outro usuário (ou seja, o Tadeu não consigará ver as configurações do Fabiano e vice-e-versa).
HKEY_CURRENT_USER
Essa chave é um atalho para a chave do usuário que fez logon no sistema. Ou seja, se o usuário "Fabiano" foi quem fez logon no sistema, essa chave apontará para a chave HKEY_USERSFabiano. Portanto, fisicamente essa chave não existe, pois apenas aponta para outra parte do registro.
HKEY_CLASSES_ROOT
Essa chave é um atalho para a chave HKEY_LOCAL_MACHINESOFTWAREClasses. Essa chave existe para manter compatibilidade com programas de 16 bits, pois no registro do Windows 3.x só havia uma única chave principal no registro, chamada HKEY_CLASSES_ROOT. Da mesma forma que a chave anterior, essa chave não existe fisicamente; ela apenas aponta para outra área do registro.
HKEY_CURRENT_CONFIG
Essa chave também é um atalho (ou seja, não existe fisicamente, apenas aponta para outra área do registro), desta vez para HKEY_LOCAL_MACHINEConfigxxxx, onde xxxx é o perfil de hardware que está atualmente configurado. Como na maioria dos micros só há um único perfil de hardware configurado, normalmente essa chave aponta para HKEY_LOCAL_MACHINEConfig001. Você pode saber qual é o perfil de hardware que está sendo atualmente utilizado no sistema lendo o valor presente em HKEY_LOCAL_MACHINESystemCurrentControlSetcontrol IDConfigDB.
HKEY_DYN_DATA
Todas as configurações armazenadas nas chaves anteriores são estáticas, ou seja, são armazenadas em algum lugar do disco rígido (em geral nos arquivos System.dat e User.dat). A chave HKEY_DYN_DATA contém informações dinâmicas e que existem somente na sessão atual. Essas informações são lidas durante o boot da máquina e contém informações como a lista de dispositivos Plug and Play instalados no micro (essas informações são armazenadas na subchave Config ManagerEnum). Essas informações ficam armazenadas em memória RAM e, portanto, são criadas a cada boot da máquina.
Problemas com o Registro
Como estamos vendo, o Registro armazena informações vitais de sua máquina. Os arquivos que armazenam o Registro são grandes. Em uma máquina típica, o arquivo System.dat (onde o Registro é armazenado) tem por volta de 2,5 MB de tamanho.
A cada boot bem sucedido que é feito na máquina, o sistema operacional executa automaticamente um processo de backup do Registro, isto é, os arquivos System.dat e User.dat são copiados com os nomes System.da0 e User.da0, respectivamente. Todos esses quatro arquivos ficam armazenados no diretório do Windows e estão com o atributo de ocultamento ativado. Para listá-los e conferir seus tamanhos, execute o comando Dir c:windows*.da? /s (outros arquivos poderão aparecer listados).
Como o Registro centraliza todas as informações do micro, se ele se corromper diversos erros poderão ocorrer. Se durante o boot do Windows 9x o sistema detecta que o Registro está corrompido, uma mensagem de erro é apresentada: "Erro do Registro - O Windows encontrou um erro ao acessar o Registro do sistema. Você deve restaurar o registro agora e reiniciar o seu computador." Nesse caso, você pode tentar recuperar o backup do Registro, executando os seguintes comandos:
attrib c:windows*.da? -r -a -s -h del c:windowsuser.dat del c:windowssystem.dat ren c:windows*.da0 *.datAcontece que muitas vezes o backup do registro também está corrompido! Nesse caso, você pode tentar recuperar o registro através de programas específicos, como o Regclean (baixe-o em http://www.download.com) ou o Cleansweep.
Já o Windows 98 funciona de maneira diferente. Em vez de apenas uma cópia de backup, ele executa cinco cópias. Além disso, ele traz um programa para corrigir erros do registro, chamado Scanreg (ele está localizado em C:WINDOWSCOMMAND). Se você usa o Windows 98, experimente executar esse programa! Por funcionar de maneira diferente, a dica anterior para a recuperação do backup do registro não funciona no Windows 98.
clique para ampliar
Figura 3: O comando Scanreg do Windows 98 verifica se há erros no Registro.O Scanreg, no entanto, procura apenas por problemas que impeçam o Windows de funcionar. Outros problemas - como, por exemplo, configurações inválidas gravadas no Registro - não são corrigidos por esse comando. A solução é a utilização de programas específicos para a manutenção do registro. O mais conhecido é o Regclean, mas há diversos outros disponíveis na Internet. Experimente visitar http://www.shareware.com ou http://www.download.com e entrar "registry" como palavra-chave para conhecer alguns desses programas.
Programas para editar o Registro
Há vários programas que permitem fazer modificações no Registro de forma rápida e segura. Alguns deles são shareware, outros você tem de comprar.
Dos bons programas, um que chama a atenção é o famoso Cleansweep, da Quarterdeck. Além de ser um excelente utilitário para a desinstalação de programas do disco rígido e "limpeza" do disco rígido (ele procura por arquivos duplicados e desnecessários, por exemplo), suas últimas versões trazem um excelente módulo de verificação do Registro do Windows 9x. Além de procurar por problemas no Registro, ele traz um editor de registro ao estilo do Regedit - chamado Registry Genie - , porém com a grande diferença de possuir um tutorial acoplado, isto é, a medida em que você navega pelo registro, o programa fornece informações sobre a chave que você está navegando, além de diversos outros recursos. Isso é excelente para aqueles que querem aprender ainda mais sobre o Registro, bem como corrigir problemas que o módulo de correção automática (chamado Registry Sweep) não conseguir detectar ou corrigir. Para mais informações sobre esse programa, visite http://www.quarterdeck.com.
clique para ampliar
Figura 4: Editor de Registro do Cleansweep, chamado Registry Genie.
clique para ampliar
Figura 5: Corrigindo erros do Registro através do Cleansweep.O shareware mais badalado para a alteração de configurações normalmente "escondidas" no Registro é o Winhacker. Disponível para download em http://www.download.com e http://www.winhacker.com, esse programa traz não só ajustes de configuração do Registro, mas também outras configurações do sistema que normalmente ficam ocultas ao usuário "comum". Com uma interface gráfica amigável e com um pequeno tutorial "on line", o Winhacker permite que você altere, sem medo, diversas configurações da máquina, tais como a alteração de qualquer ícone da área de trabalho (como "Meu Computador", "Lixeira", etc), desabilitar a extensão "~1" dos nomes de arquivos curtos, alterar a velocidade com que janelas do menu Iniciar são apresentadas e até mesmo trocar o nome do botão "Iniciar"!
clique para ampliar
Figura 6: Winhacker facilita a alteração de diversas configurações.Originalmente em http://www.clubedohardware.com.br/artigos/O-Registro-do-Windows-9x/491
© 1996-2012, Clube do Hardware. Todos os direitos reservados.
É expressamente proibida a reprodução total ou parcial do conteúdo deste site e dos textos disponíveis, seja através de mídia eletrônica, impressa, ou qualquer outra forma de distribuição. Os infratores serão indiciados e punidos com base na lei nº 9.610 de 19/02/1998.
Não nos responsabilizamos por danos materiais e/ou morais de qualquer espécie promovidos pelo uso das informações contidas no Clube do Hardware.