Drivers do Windows
O artigo abaixo foi atualizado em 2020 com informações adicionais a atualizadas deste vídeo publicado em 2017:
Essa é a segunda parte do artigo Drivers do Windows A FUNDO. No primeiro artigo eu abordei os vários tipos de driver, além de detalhar como o Windows instala os drivers e os dois únicos cenários aonde um atualizador de driver é recomendado.
Nessa segunda parte eu abordo temas adicionais e importantes sobre drivers do Windows. Se você não leu a primeira parte desse artigo, eu sugiro que você leia para evitar que você tenha dúvidas nesse artigo que você não teria se você tivesse lido a primeira parte.
Bem, nesse artigo eu complemento o vídeo anterior com cinco dicas interessantes sobre drivers.
Para 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)
Drivers do Windows: 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.
Para 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.
O 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 11 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.
Driver básico x driver completo
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:
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.