Drivers do Windows
Este artigo foi atualizado em 2020 com informações adicionais a atualizadas do vídeo abaixo:
Nessa primeira parte eu abordo em detalhes atualização de drivers e porquê programas de atualização de drivers que ficam residentes na memória são completamente desnecessários, além dos problemas graves que podem acontecer quando usuários afobados teimam em instalar um novo driver assim que ele está disponível. Esse artigo complementa o artigo “A praga dos otimizadores de PC”.
A segunda parte desse artigo aborda temas adicionais:
Drivers WHQL, que são os drivers certificados pela Microsoft
A pasta DriveStore
Eliminação de drivers antigos para recuperar espaço em disco
Backup de drivers
Por que a data dos drivers é de 2006?
… entre outros assuntos.
Essa é a primeira parte do artigo Drivers do Windows A FUNDO, um tema que está dividido em duas partes.
Primeiramente, o que é um driver? A grosso modo, um driver é um software que permite que o sistema operacional se comunique com um periférico ou um aplicativo, embora na prática existem diversos tipos de driver.
Em termos de uso, existem dois tipos de drivers:
User-mode, que é um driver com acesso limitado que permite que uma aplicação acesse funções de drivers mais restritas no kernel, como por exemplo drivers de impressora.
Kernel-mode, que é um driver mais poderoso que acessa funções importantes do sistema operacional, da memória, aplicativos e segurança, como por exemplo drivers utilizados por antivírus ou quando algum programa precisa ser executado como Administrador.
Além disso, a imagem abaixo resume os tipos de drivers, mostrando que o Function Driver (que é o principal driver criado pela fabricante), está no meio dessa cadeia de drivers, sendo que ele depende de outros drivers.
Bus Driver é um driver importantíssimo necessário para controladoras detectarem os periféricos soldados na placa-mãe ou instalados em algum slot.
Function Driver é o principal driver de um periférico, sendo na prática o DRIVER que todos falam para baixar do site do fabricante
Filter Drivers, que permite adicionar funcionalidades ao Function Driver, que é o driver principal.
E como isso tudo funciona?
Quando você instala o Windows, ele instala os drivers básicos para o próprio sistema operacional funcionar, e depois que o sistema operacional é carregado pela primeira vez, ele detecta e instala os drivers da imensa maioria dos periféricos e componentes do PC.
O Windows consegue fazer isso mesmo sem estar conectado à internet, pois ele suporta nativamente dezenas de milhares de periféricos que são automaticamente instalados. Isso é possível pois durante a instalação do sistema operacional, o Windows cria a pasta \System32\DriverStore que tem cerca de 2 GB, armazenando ali os drivers utilizados pelo Windows.
Os drivers que constam na pasta DriverStore são focados puramente em integridade e compatibilidade, que são os quesitos necessários para o periférico funcionar perfeitamente.
Exemplo simples: se nessa primeira fase de detecção de hardware o Windows detecta uma placa de rede sem fio gigabit instalada no computador, ele procura dentro da pasta DriverStore um driver que seja compatível com o chipset utilizado nessa placa, independentemente do fabricante da placa.
Ele faz isso pois um único driver pode funcionar em diversas placas diferentes, se o chip que controla o funcionamento dessas placas for o mesmo – e se esse driver for encontrado e instalado, o periférico (que nesse caso é a placa de rede sem fio gigabit) funciona mesmo sem funcionalidades extras:
E como esse driver foi exaustivamente testado e é certificado pela Microsoft como driver WHQL (detalhado na segunda parte desse artigo), ele é íntegro e estável, ou seja, ele não vai causar nenhum problema no Windows.
Feito isso, com a placa de rede sem fio gigabit funcionando no nosso exemplo com um driver compatível, o Windows então acessa via internet o banco de dados de drivers da Microsoft e eventualmente baixa e instala um driver mais atualizado ou específico para essa placa de rede.
Isso também é bastante comum com placas de som, em que o Windows detecta e instala um driver que permite o funcionamento básico da placa de som, para depois baixar o driver completo que permite controles adicionais, efeitos 3D e outras funcionalidades extras.
Quando isso acontece, a solução mais indicada é em primeiro lugar o usuário baixar e instalar o driver diretamente do site do fabricante do periférico, ou, em segundo lugar, instalar o driver que vem em um CD ou mini-CD que eventualmente vem junto com o periférico.
A terceira opção que muitos fazem é utilizar um programa de atualização de drivers, que faz o que o Windows não conseguiu fazer: detectar o periférico e instalar o driver correto para ele. Esses programas de atualização de drivers são muito úteis em dois cenários específicos:
O primeiro cenário é justamente quando o Windows não consegue detectar e instalar corretamente o periférico, aonde o programa de atualização de driver acessa seu próprio banco de dados de drivers (que é muito maior e mais completo do que o da Microsoft), e baixa dali um driver compatível.
O segundo cenário é muito utilizado por profissionais de TI em ambientes aonde não há conexão com a internet, aonde uma solução tipo DriverPack Offline Full (cuidado ao instalá-lo para evitar PUPs, pois o que interessa mesmo é apenas a pasta drivers dentro dele) que permite baixar gratuitamente um aplicativo e vários GB de drivers em que você pode copiar para um pendrive ou HD externo e instalar os drivers que o Windows não reconheceu sem a necessidade de se conectar à internet.
E agora que esses programas de atualização de drivers mostraram claramente a sua utilidade, o problema do usuário foi resolvido pois todos seus periféricos estão funcionando e esses programas devem ser desinstalados – mas é aí que começam os problemas.