Drivers do Windows A FUNDO

Este artigo está publicado em https://baboo.pro/drivers
Versão em PDF em https://baboo.pro/drivers.pdf

O artigo abaixo foi atualizado em Nov/2019 com informações adicionais a atualizadas destes vídeos publicados em 2017:

Drivers do Windows

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:

Drivers do Windows

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:

Drivers do Windows | Function driverE 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.

E quando o Windows faz isso para todos os componentes e periféricos instalados, o usuário tem um Windows estável, rápido e eficiente, sem bugs nem travamentos, e trabalha feliz da vida no seu computador. Isso é o que acontece na imensa maioria das vezes, mas obviamente existem exceções, pois nem sempre o Windows encontra o driver correto, e nesse caso o usuário precisa instalar os drivers – e aí é que começam os problemas.

Um dos maiores principais problemas são drivers para notebook, pois algumas vezes o fabricante decide utilizar um periférico ou componente com uma configuração específica, impossibilitando que um driver padrão funcione ali: nesse caso somente o driver do fabricante funciona perfeitamente. Infelizmente isso é relativamente comum em placas de vídeo em notebooks.

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.

Programas de atualização de drivers

Nos últimos anos as empresas que criaram esses programas de atualização de drivers aproveitam a crença que de muitos que acreditam que se o driver é mais recente, então ele é melhor e vai deixar o computador mais rápido - algo errado!

Para piorar, muitos tratam seu computador como um objeto de adoração que precisa ser cuidado, mimado, observado, protegido e atualizado a todo instante, esperando ansiosamente pelo momento mágico em que aparecerá o Santo Graal dos drivers que vai milagrosamente dobrar o desempenho do seu computador nos jogos - e eles não pensam duas vezes antes de instalar qualquer programa que prometa aumentar a performance do hardware existente, por mais inútil que ele seja.

Drivers do Windows | Driver milagroso: jogos 2x mais rápidos!

Essas empresas que vendem programas de atualização de drivers aprenderam a aplicar o mesmo golpe dos "otimizadores de PC" que eu abordei em outro artigo, ao enganar os usuários fazendo-os acreditar que eles precisam desse tipo de aplicativo, convencendo até mesmo a pagarem por isso.

Para piorar, jornalistas, gamers e youtubers que não entendem a fundo sobre Windows (e muito menos sobre o funcionamento interno dos drivers), incentivam os internautas a fazerem a mesma besteira que eles fizeram: utilizar algum “atualizador de driver”, inclusive mostrando como utilizar versões piratas deles. Pior que isso, impossível.

Baboo comentaEmbora seja triste, eu confesso que eu me divirto quando eu leio que alguém atualizou um driver qualquer e posta infantilmente que depois disso o computador "ficou um pouco mais rápido", "ficou mais leve" ou "teve um ganho". 

 
Na rática essas conclusões abstratas e imaginárias caem por terra diante de uma rápida análise da lista de correções do driver (o changelog) que mostra que o driver instalado não teve NENHUMA mudança, correção ou melhoria relacionada a desempenho ou performance.

Muitas vezes a versão mais nova de um driver contém somente a correção de uma palavra que estava escrita errada em algum idioma, alguma alteração relacionada ao gerenciamento de energia, alguma atualização na telemetria do próprio driver, ou até mesmo a remoção de algum componente antigo que não será mais utilizado.

Lamentavelmente essas opiniões de ganho de performance sem nenhum critério técnico ajudam a eternizar a crença completamente incorreta que todo driver deve ser imediatamente atualizado.


E como toda regra tem exceção, existem algumas poucas situações aonde o ganho de desempenho é real em alguns cenários. A principal delas é obviamente a atualização do driver da placa de vídeo, que pode alterar drasticamente a performance de jogos e aplicativos gráficos.

Drivers de vídeo - exemplos de 2019

Drivers de vídeo

Isso acontece pois os componentes gráficos envolvidos em aplicações (não somente jogos) que utilizam maciçamente a placa de vídeo evoluem muito mais rápido do que os demais componentes do computador, seja através das novidades do DirectX ou OpenGL, dos algoritmos de compressão de imagem e vídeo, do uso mais inteligente dos cores do processador, do aproveitamento maior da GPU, resultando em imagens e vídeos cada vez mais realistas sendo criados cada vez mais rápido.

Essa constante evolução permite que um novo driver de vídeo resulte em melhor desempenho em determinados jogos ou aplicativos, permitindo inclusive a criação de drivers específicos para algumas situações.

Na NVIDIA, um bom exemplo disso é o driver GeForce 378.78 que permite que o jogo Rise of the Tomb Rider funcionando sob DirectX12 tenha um desempenho 33% maior em relação aos drivers anteriores, e o NVIDIA AutoCAD Performance Driver (um driver de vídeo específico para usuários de versões antigas do AutoCAD que utilizam suas placas de vídeo QUADRO) que permite executar algumas tarefas até 10x mais rápido em comparação com o driver comum.

A AMD também criou o driver Crimson ReLive for BlockChain Compute que permite minerar moedas virtuais muito mais rápido do que utilizando o driver comum da AMD.

Embora isso mostre que um driver possa melhorar MUITO o desempenho de um jogo ou aplicação, isso é um evento muito mais raro do que você imagina pois no mundo real a realidade é outra.

 

Exemplos de 2019

Eu vou usar como exemplo as informações do changelog de quatro drivers disponibilizados pela NVIDIA no final de 2019:

Drivers do Windows | GeForce drivers 2019

Dia 04 de novembro de 2019 a NVIDIA lançou o driver GeForce 441.12 que melhorou o desempenho do jogo Red Dead Redemption 2, incluiu novos monitores compatíveis com G-SYNC, corrigiu problemas de segurança no próprio driver e melhorou a estabilidade do jogo Super Robot Wars V.

No dia 29 de outubro de 2019 ela disponibilizou o driver GeForce 441.08 que incluiu suporte à GeForce GTX 1660, incluiu novos monitores compatíveis com G-SYNC e adicionou suporte ao HDMI 2.1 VRR.

No dia 22 de outubro de 2019 a NVIDIA lançou o driver GeForce 440.97 que incluiu suporte ao G-SYNC para aplicações OpenGL e Vulkan rodando em janelas não-maximizadas, solucionou problema de queda de frames em jogos em notebooks rodando com G-SYNC em baixas taxas de refresh.

E no dia 1 de outubro de 2019 a NVIDIA lançou o driver GeForce 436.48 que corrigiu erro de alocação de memória no jogo UBOAT, corrigiu um problema no jogo Tom Clancyʹs The Division II quando jogado com DirectX12 além de solucionar problemas com jogos baseados na tecnologia Vulka e corrigir problemas com os programas Tradesmen OS3DE e Cinema4D.

Agora que você sabe o que mudou de um driver para o outro:

pergunta.png Qual deles você acha que vai deixar o seu Windows mais rápido?
pergunta.png Qual desses drivers aumentou o desempenho de qualquer atividade gráfica no dia-a-dia?
pergunta.png Qual deles fez com que seu computador "ficou mais leve"?
pergunta.png Qual desses drivers aumentou a produtividade de alguém que trabalha com PC o dia todo?

Resposta: NENHUM deles, pois NADA neles foi alterado em relação a ganho de performance: o ganho está relacionado a aplicações e jogos específicos, não refletindo EM NADA no Windows em si. Para piorar, novos drivers podem introduzir novos bugs e incluir novidades em teste(!), como a GeForce 436.18 que inclui funcionalidades "para fins de avaliação" no OpenCL 2.0, ou seja, o usuário será obrigatoriamente um beta-tester dessas funcionalidades.

E detalhe importante: como a NVIDIA obtém os resultados dos testes dessas funcioalidades em teste? Através da telemetria, que eu abordo em detalhe neste artigo.

Se um gamer estiver usando um driver de vídeo de três meses atrás e instalar qualquer uma dessas quatro versões novas do driver, o Windows dele NÃO VAI ficar mais rápido, os jogos dele NÃO VÃO ficar mais rápido, e ele ainda corre o risco de instalar um driver que tenha algum bug novo que não existia no driver antigo dele.

O mesmo acontece com usuários que utilizam notebooks antigos cujos drivers são de 2011 ou 2012, e ficam preocupados por não existirem drivers mais recentes. Vamos pensar de uma maneira prática: se o periférico está funcionando perfeitamente, não gera nenhum erro ou problema, então realisticamente não há motivo para se desesperar em atualizá-lo.

Se você quer um computador mais rápido, simplesmente compre um SSD ou melhore o hardware ao invés de achar que algum driver vai resolver a lentidão dele.

 
Problemas com drivers novos são bastante comuns: a Intel disponibilizou o driver 19.1.0 para WiFi que causava tela azul, um driver de áudio da Realtek causava tela azul em computadores da HP, alguns drivers de controladoras USB 3.0 são reconhecidamente instáveis (eles funcionam em alguns computadores, mas não em outros), e também temos o conhecido caso da GeForce 196.75.

 

O caso da GeForce 196.75

Driver GeForce 196.75 queimou algumas placas de vídeo

Em 2010 a NVIDIA disponibilizou oficialmente o driver GeForce 196.75 que tinha um bug no sistema de controle refrigeração: ao invés de aumentar a velocidade de rotação da ventoinha quando a placa esquentava, esse bug fazia com que a ventoinha diminuísse a velocidade até parar por completo.

Resultado: muitos usuários que tinham acabado de instalar esse driver tiveram as suas placas queimadas depois de jogarem por 20 minutos. A NVIDIA removeu o driver do seu site (sugerindo os internautas retornarem à versão 196.21), mas ele já havia causado sérios problemas para todos aqueles que (apressadamente)  instalaram ele.

Esses são apenas alguns exemplos de drivers problemáticos que foram disponibilizados e que causaram sérios problemas. E embora isso não seja comum, eles apenas ressaltam o risco que o usuário desesperado corre ao atualizar drivers assim que eles são disponibilizados, seja manualmente ou através dos atualizadores de drivers.

Agora você também entende o motivo de alguns drivers disponibilizados pelos fabricantes (incluindo NVIDIA) só aparecerem no Windows Update alguns dias ou semanas após eles terem sido lançados oficialmente no site do fabricante. É importante que você compreenda que fabricantes de periféricos disponibilizam um novo driver somente quando há necessidade REAL disso, principalmente para corrigir algum problema que afete a estabilidade ou segurança, e eventualmente alguma nova funcionalidade.
 

Da mesma forma que acontece com a memória RAM, que não é a economia a todo custo dela que vai deixar o seu Windows mais rápido, mas sim o uso INTELIGENTE dela, no caso dos drivers acontece a mesma coisa: você não deve obrigatoriamente instalar o driver mais RECENTE, mas sim o MELHOR driver para o seu uso.

Se um driver realmente beneficia um determinado programa ou jogo que você utiliza, como no exemplo do jogo Rise of the Tomb Rider funcionando sob DirectX12 na GeForce 378.78 ou o jogo Red Dead Redemption 2 no driver GeForce 441.12, daí sim eu concordo que vale a pena você instalá-lo e testá-lo.

Outro bom exemplo que justifica a atualização de drivers: em março de 2019 a NVIDIA informou que disponibilizaria em breve drivers atualizados para as placas de vídeo GeForce GTX que suportam ray tracing (tecnologia que permite a criação de imagens e ambientes com reflexão, refração e sombras extremamente realistas) sem necessidade de qualquer atualização ou mudança no jogo:

img_5c9ace233aa71.jpg

O resultado disso é espetacular e sem dúvida alguma será benéfico para todos os jogadores que tiverem placas compatíveis com essa tecnologia:

Se o novo driver não resultar em ganho de performance real ou novas funcionalidades (como a ray tracing), então simplesmente não existe vantagem em atualizar o driver. Se você não acredita nisso, basta acessar fóruns focados em hardware e ler inúmeros os casos reais de usuários que precisaram desinstalar o driver que ele acabou de instalar pois ele dava tela azul, o jogo travava ou alguma coisa que funcionava direito antes agora tem algum problema.

É justamente por isso que esses programas de atualização de drivers não devem ser utilizados no dia-a-dia, pois na prática a utilidade deles está limitada aos dois exemplos que eu citei anteriormente.

mentira.pngPara piorar, esses atualizadores de drivers anunciam que eles ""melhoram a experiência de jogo", que "atualizar drivers sempre consome muito tempo e afeta suas atividades diárias no computador", que eles "aumentam a produtividade", entre outras mentiras que só servem para tentar vender a solução para um problema que simplesmente não existe!

Atualização de drivers pelo Windows

Windows atualizando os drivers

Não tenha a menor dúvida que a própria Microsoft é a maior interessada em deixar o Windows "voando baixo" - e ela consegue isso sem a necessidade de uso de drivers especiais ou programas milagrosos. Se algum novo driver é REALMENTE importante, ou seja, o driver atual tem algum problema ou limitação que afete o usuário e que precisa ser substituído, esse driver vem através do Windows Update.

atualizacao-de-drivers-no-windows.png Para a Microsoft, a atualização de driver fora desse escopo não é algo crítico, e se o usuário quiser atualizar um driver de algum periférico no Windows, ele pode fazer isso manualmente diretamente via Gerenciador de Dispositivos - tanto que existem drivers aprovados pela Microsoft que são mais recentes para o seu computador, mas que ele não traz nenhum benefício de estabilidade, funcionalidade ou performance, e por isso ele não é automaticamente instalado.

Um exemplo simples é você entrar no Gerenciador de Dispositivos, abrir Dispositivos de Sistema, e ver ali se há algum item Ponte PCI para PCI. Se houver, clique com o botão da direita nele e clique em Atualizar Driver.

Clique na opção Pesquisar automaticamente e o Windows baixará o driver atualizado para ele. Note que ao fazer a atualização dele, ele será substituído por um novo item, apenas com detalhes adicionais sobre o próprio driver.

Esse driver em especial é o pci.sys, um driver importantíssimo que é responsável pela detecção e funcionamento dos principais componentes internos do PC, integrados na placa-mãe ou não, e mesmo sendo um driver crucial, a atualização que você acabou de fazer não significa que o seu PC ficou mais rápido, mais estável ou "mais leve".

Agora imagina se algum "atualizador de driver" baixar e instalar uma nova versão desse arquivo que tenha algum novo bug, causando tela azul que impede que o Windows seja carregado! Esse é um risco real que pode acontecer - e o fato do novo driver baixado por esses programas ser certificado pela Microsoft não impede esse problema, como eu detalharei na segunda parte desse artigo.

 

Drivers em servidores

Por fim, existe um conhecido cenário aonde a atualização de drivers é crucial: em servidores.

Como você já deve saber, servidores compõem o cenário mais complexo e intenso no uso de CPU, memória e disco - e justamente nesse ambiente, aonde o ganho de performance é extremamente valioso e importante, “atualização de driver” é um dos termos mais temidos e angustiantes.

A atualização de drivers em servidores é algo perigoso pois o uso intenso do hardware expõe a estabilidade e integridade do driver ao limite, e qualquer probleminha nele pode gerar sérios prejuízos, principalmente em drivers cruciais como controladoras de armazenamento e placas de rede, e esse prejuízo é multiplicado se esses servidores hospedam milhares de máquinas virtuais.

Muitos administradores de rede implementam regras no Windows Server que impedem a atualização automática de drivers justamente para evitar qualquer problema com algum bug desconhecido existente na versão nova do driver:

bloqueio-de-atualizacao-de-driver-via-windows-update.png

Administrador de redes sugerindo a compra de um "atualizador de drivers" :)Se algum profissional de TI ou administrador de rede quiser destruir a sua carreira com uma única frase, basta ele falar para o diretor de TI que a empresa precisa comprar um “atualizador de drivers” para “melhorar a performance” dos seus servidores e também “aumentar a produtividade” dos funcionários da empresa.

 
A demissão dele será imediata!

Drivers em uso e drivers WHQL

Como saber quais drivers o Windows está utilizando?

Drivers do Windows | Drivers instaladosPara saber isso, basta abrir uma janela de comando ou PowerShell e digitar o comando driverquery, e se você quiser mais detalhes sobre cada drivers, digite driverquery/v.

Se você prefere utilizar um aplicativo mais prático para isso, eu sugiro o uso do InstalledDriverList da NirSoft, que é uma versão portátil que não precisa ser instalada. Além dele mostrar detalhes de cada driver, ele mostra como o driver é carregado (como por exemplo durante o boot, se é carregado automaticamente pelo Windows, etc) e também gera um relatório completo em HTML.

Se você quer ver a lista de drivers por ordem de empresa, para você saber quais drivers são da Microsoft e quais são de outras empresas, basta clicar em File Company. No lado esquerdo do nome do driver há uma esfera com cores diferentes:

Verde: driver está rodando em kernel

Amarelo: driver não está rodando em kernel

Vermelho: driver não está rodando em kernel, mas é carregado na inicialização do Windows (isso pode indicar um problema com o driver)

 

O que é um driver WHQL?

Quando uma empresa cria um novo periférico, ela também precisa criar um driver para que ele possa ser identificado e utilizado no Windows.

Como a Microsoft não tem nenhum controle sobre a qualidade desse driver, há muitos anos empresas disponibilizam drivers instáveis e com bugs que causam todo tipo de problema no sistema operacional, principalmente tela azul.

Voltando um pouco no tempo, a época do Windows 95 foi a Era Medieval dos drivers, pois o sucesso estrondoso desse sistema operacional fez com que empresas do mundo todo lançassem rapidamente todo tipo de periférico e acessório para esse sistema operacional.

Infelizmente essas empresas não perdiam muito tempo realizando testes exaustivos com os drivers, chegando ao ponto de, acredite se quiser, vender um periférico que vinha com um CD com os drivers BETA dele, ou seja, o próprio driver era uma versão de teste pois o driver final ainda estava sendo desenvolvido(!)

Obviamente o resultado disso foi desastroso, os usuários que não faziam ideia sobre estabilidade de drivers, e por isso culpavam diariamente o Windows e a Microsoft por esses problemas.

Drivers do Windows | WHQLPara acabar com a instabilidade de drivers bugados, muitos anos atrás a Microsoft criou um programa de testes de drivers em que o fabricante enviava seu periférico e o driver para a própria Microsoft. Ali ele era exaustivamente testado em diversos computadores durante vários dias, e se esse driver funcionasse perfeitamente sem causar nenhum problema no Windows ele se tornava um driver aprovado e certificado pela Microsoft.

Esse driver é o conhecido WHQL, indicando que ele foi aprovado pelo Windows Hardware Quality Labs, o Laboratório de Qualidade de Hardware do Windows, e que ele pode inclusive ser distribuído via Windows Update.

Na época do Windows 95 e 98 os fabricantes não faziam muita questão que seus drivers fossem WHQL, pois o procedimento do próprio teste era meio arcaico: além de alguns fabricantes de periféricos precisarem enviar até 25 unidades para Redmond para a realização do teste, o próprio teste poderia demorar até 60 dias, o que obviamente desestimulava empresas asiáticas que criavam periféricos novos a cada dia.

 

WHQL no Windows 10

Há tempos o teste de drivers para obtenção do WHQL é muito mais automatizado e rigoroso, aonde o fabricante baixa uma ferramenta da Microsoft e um certificado digital específico que devem ser instalados em todos os computadores que serão utilizados para testar o driver, e essa ferramenta realiza automaticamente todos os testes necessários.

E no final desses testes, a própria ferramenta envia para os servidores da Microsoft o resultado deles para validação do driver, aonde um driver só se torna WHQL se ele passar em todos os testes.

Todos os drivers nativos do Windows e aqueles que vêm via Windows Update são WHQL justamente para garantir que eles não vão causar nenhum problema, além do Windows 10 impedir automaticamente a instalação de drivers que não sejam WHQL.

Para você ter uma ideia da dificuldade de um driver de vídeo se tornar WHQL no Windows 10, o teste automatizado que o fabricante precisa realizar com esse tipo de driver inclui uma sequência de 1525 testes específicos para garantir que esse driver é estável e pode ser utilizado em todas as edições do Windows 10 (incluindo a versão ARM para dispositivos móveis), além do Windows Server.
 

Drivers do Windows | WHQL 2O teste específico para drivers de placas de vídeo dura quase 30 horas algumas dezenas de horas, e envolve desde a reprodução de vídeos com diferentes codecs como o H264, HEVC (ou H.265 que suporta vídeos com resolução de até 8K) e VP9, testes detalhados em 2D e 3D sob DirectX (inclusive testes de compatibilidade com DX8 e DX9), renderização e texturização de objetos, testes de envio de sinal para displays externos, e também um teste de stress que dura 4 horas para garantir a estabilidade do driver em uma situação extrema.

Se você tem interesse em saber detalhes sobre cada um testes, além dos testes de drivers de outros periféricos além da placa de vídeo, você pode acessar um arquivo do Windows Hardware Lab Kit que tem mais de 12 MIL páginas repletas de informações.

Mas mesmo com todos esses testes, isso não indica que o driver seja absolutamente infalível. Você se lembra do caso que eu citei na primeira parte desse artigo sobre o driver 196.75 da NVIDIA que queimou placas de vídeo? Aquele driver era WHQL!

E como foi possível um driver WHQL ter um bug tão destrutivo? Esse problema aconteceu pois o problema não era relacionado ao driver de vídeo em si, mas sim um bug relacionado ao controle de velocidade da ventoinha, que é algo que o teste de WHQL obviamente não testa, comprovando que até mesmo novos drivers WHQL podem ter bugs.

Outro detalhe interessante é que sempre existem diferenças entre o driver instalado via Windows Update (que veio através do banco de dados de driver da Microsoft) e a instalação do driver via site do fabricante.

Driver básico x driver completo

Drivers do Windows | Impressora Isso acontece pois os drivers baixados pelo Windows Update incluem funcionalidades básicas do periférico. No site dos fabricantes, por outro lado, as versões são usualmente encapsuladas com todo tipo de funcionalidades, sendo muitas delas simplesmente inúteis.

Exemplo simples: enquanto o driver genérico de uma impressora permite que ela funcione perfeitamente, o pacote de download do fabricante também inclui esse driver, além de "funcionalidades extras" como um assistente de instalação da impressora, opção de compra online de cartuchos originais que aparece na tela do seu monitor quando o programa detecta que o nível dos cartuchos está baixo, programa de correção de fotos e reconhecimento de caracteres em impressoras que também têm scanner, etc.

Com isso, enquanto um driver de impressora com pouco mais de 10 MB é suficiente para ela funcionar, fabricantes disponibilizam pacotes com 100, 200 e até 500 MB com tranqueiras adicionais que muitas vezes ocupam espaço à toa tanto no disco rígido quanto na memória RAM, pois muitos desses aplicativos são carregados na inicialização do Windows:

Drivers do Windows | Driver básico x driver completo

E para piorar, mesmo que o driver seja WHQL nesse pacote, muitos aplicativos atrapalham o Windows e o usuário, pois às vezes o fabricante instala um aplicativo que faz algo que o Windows faz nativamente, como por exemplo detecção de redes Wi-Fi.

Aliás, como isso também se aplica aos fabricantes de notebook, é justamente por esse motivo que eu sempre reinstalo o Windows "do zero" em notebooks novos, pois dessa maneira o usuário se livra dos bloatwares, programas inúteis e versões trial que vêm pré-instalados no note atrapalhando bastante o seu desempenho.

Por que drivers do Windows têm data 21 de junho de 2006?

Drivers do Windows com data 21 de junho de 2006

Muitos usuários estranham o fato de vários drivers do Windows 10 e também das versões anteriores do Windows serem de 2006, e em vários fóruns há dúvidas e reclamações sobre isso - inclusive no próprio fórum da Microsoft.

Embora esses drivers têm a data de 2006, na verdade esses drivers são novos e atualizados. E por que eles têm data de 2006? Isso é necessário para permitir que o usuário instale um driver específico sem que o Windows atualize automaticamente esse driver por outro mais recente.
Quando o Windows pesquisa por um driver, ele primeiro checa o Hardware ID do periférico e quais drivers foram desenvolvidos especificamente para esse periférico - e se dois drivers foram criados especificamente para esse periférico, o Windows dá preferência ao driver mais recente. Se os dois drivers tiverem a mesma data, o driver com a maior versão é o driver escolhido:

Drivers do Windows | Hardware ID do periférico

Isso é muito prático e eficiente, mas o que acontece se o fabricante do seu PC disponibiliza um driver específico que você precisa utilizar (seja por questão de compatibilidade ou teste) e esse driver tem uma data anterior aos drivers mais novos? Nesse caso o Windows sempre substituiria ele por outro driver mais recente (pois a data dele é mais recente), e na prática você jamais conseguiria utilizar esse driver do fabricante.

Exemplificando de uma maneira simples: se o Windows vier com um driver de 2017 e você precisa instalar um driver de 2015 no lugar dele, assim que você instalar esse driver de 2015, o Windows vai substitui-lo pela versão mais recente, que é a versão 2017 que veio com o próprio Windows 10. Com isso, você jamais poderia utilizar esse driver de 2015 pois o Windows considera esse driver como "antigo":

Drivers do Windows | Drivers do periférico

MAS, como o Windows 10 vem com um drive de 2006 (pois ele não sabe que na verdade esse driver é de 2017), quando você instalar o driver de 2015, o Windows vai manter esse driver de 2015, porque para ele esse driver de 2015 é uma versão muito mais nova do que o driver "antigo" que estava lá e era de 2006.

Windows VistaE porquê os drivers têm a data 21 de Junho de 2006? Pois os drivers das versões mais novas do Windows precisam ser compatíveis com o hardware disponibilizado depois do Windows Vista, uma vez que o modelo do funcionamento interno dos drivers atuais foi introduzido com o Windows Vista - e a versão RTM do Windows Vista, que foi a primeira versão oficial  disponibilizada ao público, foi finalizada no dia... 21 de Junho de 2006!

Remoção de drivers antigos para recuperar espaço e backup

Remoção de drivers antigos para recuperar espaço

Como eu informei mais acima, a pasta DriverStore é a pasta que armazena os drivers do Windows, e ela tem em média 2 GB de tamanho, embora esse número varie de acordo com o tipo de PC e periféricos instalados. E toda vez que você instala um driver novo, o driver anterior continua existindo nessa pasta, pois dessa maneira é possível reverter para o driver anterior caso o driver novo tenha algum problema.

Isso é muito prático, mas a atualização constante de drivers faz com que essa pasta cresça cada vez mais, pois ela continua armazenando drivers antigos - e eu já vi casos aonde essa pasta tinha mais de 40 GB.

Isso acontece muito com quem adora baixar drivers da NVIDIA, aonde cada driver pode ter mais de 450 MB. Somente no ano de 2017 a NVIDIA disponibilizou 20 drivers GeForce oficiais que somados totalizam quase 9 GB - e se alguém baixou todos eles e não apagou a versão anterior, certamente a pasta DriverStore dessa pessoa deve estar imensa.

Para você saber em detalhes sobre os drivers da pasta DriverStore e apagar automaticamente os drivers antigos, eu sugiro o uso do ótimo DriverStoreExplorer (que deve ser executado como Administrador).

No exemplo abaixo existem 6 drivers de adaptadores de vídeo da NVIDIA, sendo que dois deles estão em uso, enquanto 4 outros são as versões antigas desses drivers, totalizando quase 2 GB:

Drivers do Windows | Remoção de drivers antigos

Se tudo está funcionando corretamente com o driver de vídeo atual e eu quiser remover esses 5 drivers antigos, basta selecioná-los e clicar em Delete Package, ou fazer isso automaticamente com todos os drivers instalados (driver de rede, som, etc) clicando em Select Old Drivers.

Essa opção permite selecionar automaticamente todos os drivers antigos, além de mostrar o total de espaço que eles ocupam. Para remover todos eles, basta clicar em Delete Package, e com isso você remove definitivamente esses drivers, recuperando um bom espaço em disco.

Backup de drivers

Poucos sabem, mas se você quiser fazer backup dos drivers de terceiros instalados no Windows, ou seja, todos os drivers que não fazem parte dos drivers nativos que já vem no Windows, você não precisa de nenhum aplicativo para isso, pois usando um simples comando do PowerShell, o Windows copia esses drivers para uma pasta.

Isso é recomendado quando o seu computador está funcionando perfeitamente com os drivers que você instalou manualmente, e você quer fazer um backup desses drivers.

Para fazer isso, abra uma janela do PowerShell Admin e execute este comando: Export-WindowsDriver -Online -Destination C:\BackupDrivers

Drivers do Windows | Backup de drivers

Esse comando exporta os drivers dos dispositivos listados no Gerenciador de Dispositivos (inclusive drivers antigos que estão na pasta DriverStore) para a pasta C:\backup-drivers

Fazendo isso, se algum dia você precisa reinstalar algum driver dali, basta informar o Windows que o local dos drivers está nessa pasta:

Drivers do Windows | Restauração de drivers

E se você quer fazer backup de todos os drivers (incluindo antigos e os que não estão em uso), eu sugiro o uso do DriverBackup! que é gratuito e não precisa ser instalado. Você precisa apenas executá-lo e clicar no botão Iniciar Backup:

Drivers do Windows | Backup de drivers com o DriverBackup!

Agora clique no botão Sfoglia para escolher aonde os backups serão salvos, e altere os dados da Descrição e Date format. Clique em OK e o backup será iniciado. No final cada driver estará em uma pasta única para fácil localização dele.

Drivers do Windows | Backup de drivers com o DriverBackup! 2

Como atualizar corretamente os drivers do seu computador?

Como atualizar corretamente os drivers do seu computador?

Se você leu todo artigo até agora (obrigado por isso!) e compreendeu tudo que eu falei sobre drivers, você certamente já sabe o que fazer e principalmente o que NÃO fazer em relação à atualização deles.

Conhecendo os riscos envolvidos na atualização de drivers, aonde um novo driver normalmente corrige algum bug ou problema do driver anterior, vamos pensar de maneira racional e coerente:

Se você fosse um administrador de rede de uma empresa, sendo responsável pela estabilidade e funcionamento dos computadores e notebooks de 50 mil funcionários, você aceitaria que eles instalassem livremente qualquer driver desconhecido, seja fazendo isso manualmente ou através de algum atualizador de driver?

 
Obviamente NÃO, pois certamente a sua equipe de suporte teria muito mais problemas para resolver (problemas esses que não existiam antes da mudança de driver) sem ter na prática NENHUM benefício em troca disso. Esse raciocínio também vale para 100 mil computadores, 1 milhão de computadores ou um único computador.

Repetindo pela última vez: a atualização de um driver deve ser realizada somente quanto isso for REALMENTE necessário. E quando isso acontecer, a atualização deve idealmente seguir esse fluxograma:

fluxograma-instalacao-drivers.jpg

Se todos os periféricos do seu computador estão funcionando perfeitamente, sem nenhum problema, bug, travamento ou tela azul e você está satisfeito com ele, entenda que na prática você simplesmente NÃO PRECISA atualizar nenhum driver pois é desta maneira que o Windows permanece estável e rápido.

Se houver algum problema ou limitação de algum driver, o primeiro passo é executar o Windows Update para verificar se existe algum novo driver disponível. Se não houver, você deve procurar se existe um driver novo via Gerenciador de Dispositivos, e eu mostro como fazer isso no primeiro artigo.

E se não houver nenhum driver ali, daí você deve acessar o site do fabricante do periférico e baixar dali o driver mais recente. Se não houver nenhum driver novo no site do fabricante, isso normalmente indica que o driver que você está utilizando agora é o mais atual.

Nesse caso, eu sugiro você desinstalar totalmente o periférico, reiniciar o computador e reinstalá-lo com os drivers originais ou os drivers instalados pelo próprio Windows. Se o periférico continuar com problemas, daí você deve contatar o suporte do fabricante.

Evite ao máximo baixar drivers beta, drivers "modificados" ou "otimizados" que são anunciados em muitos fóruns e sites, pois esse é o primeiro passo para você começar a ter sérios problemas de estabilidade, confiabilidade e segurança no Windows.

Se você tem um periférico que não é reconhecido pelo Windows, o ideal é que você baixe o driver mais recente diretamente no site do fabricante do periférico, e se isso não for possível (quando por exemplo você não faz ideia de quem seja o fabricante), daí você deve utilizar um atualizador de driver. E assim que o periférico for detectado e o driver for instalado, você desinstala o programa de atualização de drivers pois ele não é mais necessário.

E se mesmo assim o periférico não foi reconhecido, eu sugiro você desinstalar totalmente o periférico, reiniciar o computador e reinstalá-lo com os drivers originais ou os drivers instalados pelo próprio Windows. Se o periférico depende de algum cabo, como USB, experimente também substituir o cabo. Se nada disso funcionar, daí eu sugiro você contatar o suporte do fabricante.

Um detalhe final é que muitos drivers desenvolvidos para o Windows 7 e 8.x também funcionam no Windows 10.

 
Bem, agora que você entende mais a fundo sobre drivers no Windows, você compreende porquê os computadores que dão mais problemas com Windows são justamente computadores de usuários que fuçam em tudo e que instalam qualquer porcaria de otimizador de PC e que instalam qualquer driver recente achando que o PC dele vai ficar milagrosamente mais rápido.

Se você deixar o Windows em paz, trabalhando da maneira como a Microsoft criou ele, sem instalar nenhuma tranqueira, otimizador, booster ou qualquer outra porcaria que promete melhorar o Windows, você verá que o Windows ficará mais rápido, estável e confiável.

Se você ainda duvida disso, faça o teste por uma semana removendo todos esses 171 digitais e você ficará bastante satisfeito com o resultado!

[]s


Aurélio "Baboo"
www.baboo.com.br
MVP Windows 2003-2019