Compartilhar via


Verificador de Driver

O Verificador de Driver é uma ferramenta de teste do Windows que ajuda você a identificar problemas de driver antes que eles causem falhas no sistema ou corrupção. Ao monitorar drivers de modo kernel e drivers gráficos em tempo real, o Verificador de Driver detecta chamadas de função ilegais e ações problemáticas que podem desestabilizar seu sistema.

Se você estiver desenvolvendo novos drivers ou solucionando problemas existentes, o Verificador de Driver fornece as funcionalidades de detecção e depuração antecipadas necessárias para criar drivers confiáveis e de alta qualidade. Este guia abrangente aborda tudo, desde a configuração básica até técnicas avançadas de depuração.

  • Saiba quando e por que usar o Verificador de Driver
  • Configurar o Verificador de Driver para seu ambiente de teste
  • Configurar opções de verificação para suas necessidades específicas
  • Depurar violações e interpretar resultados
  • Aplicar melhores práticas para fluxos de teste de drivers

Importante

  • Executar o Verificador de Driver pode causar uma falha no computador.
  • Execute somente o Verificador de Driver em computadores usados para teste e depuração.
  • Você precisa estar no grupo Administradores no computador para usar o Driver Verifier.

Onde posso obter o Driver Verifier?

Você não precisa obter o Verificador de Driver, pois a maioria das versões do Windows o incluem no %WinDir%\system32\ as Verifier.exe. (O Verificador de Driver não está incluído no Windows 10 S, portanto, recomendamos testar o comportamento do driver no Windows 10.) O Verificador de Driver não é distribuído separadamente como um pacote de download.

Para obter informações sobre alterações no Verificador de Driver para Windows 10 e versões anteriores do Windows, consulte Driver Verifier: What's New.

Quando usar o Verificador de Driver

Use o Verificador de Driver em todo o processo de desenvolvimento e teste do driver:

Desenvolvimento antecipado

  • Encontre problemas no início do ciclo de desenvolvimento quando eles são mais fáceis e menos caros de corrigir
  • Evitar atrasos caros capturando problemas antes que eles cheguem à produção

Resolução de problemas

  • Falhas de teste de depuração e falhas no computador rapidamente
  • Identificar as causas raízes da instabilidade do sistema relacionada ao driver

Teste e implantação

Para obter orientações abrangentes para teste de driver, consulte Testar um Driver.

Importante

O Programa de Compatibilidade de Hardware do Windows requer testes do CodeQL para STL (logotipo da ferramenta estática) em nossos sistemas operacionais cliente e servidor. Continuamos a manter o suporte para SDV e AC em produtos mais antigos. Os parceiros são altamente incentivados a revisar os requisitos do CodeQL para o Teste do Logotipo da Ferramenta de Análise Estática. Para obter mais informações sobre como usar o CodeQL, consulte CodeQL e o Teste de Logotipo de Ferramentas Estáticas.

Como iniciar o Verificador de Driver

Apenas utilize o Driver Verifier em computadores de teste ou em computadores que estão sendo testados e depurados. Para obter o maior benefício do Verificador de Driver, use um depurador de kernel para se conectar ao computador de teste. Para obter mais informações sobre ferramentas de depuração, consulte Ferramentas de Depuração para Windows (WinDbg, KD, CDB, NTSD).

  1. Inicie uma janela do Prompt de Comando selecionando Executar como administrador e digite verifier para abrir o Gerenciador do Verificador de Driver.

  2. Selecione Criar configurações padrão (a tarefa padrão) e selecione Avançar.

    Você também pode escolher Criar configurações personalizadas para selecionar entre configurações predefinidas ou selecionar opções individuais. Para obter mais informações, consulte opções dos Verificadores de Driver e classes de regra e selecionando opções dos Verificadores de Driver.

  3. Em Selecionar quais drivers verificar, escolha um dos esquemas de seleção descritos na tabela a seguir:

    Opção Uso recomendado
    Selecionar automaticamente drivers não assinados Útil para testes em computadores que executam versões do Windows que não exigem drivers assinados.
    Selecionar automaticamente drivers criados para versões mais antigas do Windows Útil para testar a compatibilidade do driver com versões mais recentes do Windows.
    Selecione automaticamente todos os drivers instalados neste computador Fornece cobertura máxima em relação ao número de drivers testados em um sistema. Essa opção é útil para cenários de teste em que um driver pode interagir com outros dispositivos ou drivers em um sistema.

    Essa opção também pode esgotar os recursos disponíveis para o Pool Especial e algum acompanhamento de recursos. Testar todos os drivers também pode afetar negativamente o desempenho do sistema.
    Selecionar nomes de driver em uma lista Na maioria das vezes, você deseja especificar quais drivers testar.

    Selecionar todos os drivers em uma pilha de dispositivos permite que a opção de Verificação de E/S Aprimorada rastreie objetos e verifique a conformidade porque um IRP (pacote de solicitação de E/S) é passado entre cada um dos drivers na pilha, o que permite que um nível maior de detalhes seja fornecido quando um erro é detectado.

    Selecione um único driver se você estiver executando um cenário de teste que mede as métricas de desempenho do sistema ou do driver ou se quiser alocar o maior número de recursos disponíveis para detectar problemas de corrupção de memória ou controle de recursos (como deadlocks ou mutexes). As opções de Verificação de E/S e Pool Especial são mais eficazes quando usadas em um driver de cada vez.
  4. Se você escolher Selecionar nomes de driver em uma lista, selecione Avançar e selecione um ou mais drivers específicos.

  5. Selecione Concluir e reinicie o computador.

Observação

Ao usar o verificador de driver com as versões do Windows 20150 a 25126, se você selecionar ntoskrnl , poderá receber um erro de estado inválido.
Para evitar esse problema, desmarque o ntoskrnl ou atualize para uma versão do Windows após o build 25126.

Executar o verificador de driver em um prompt de comando

Você também pode executar o Verificador de Driver em uma janela do Prompt de Comando sem iniciar o Driver Verifier Manager. Por exemplo, para executar o Verificador de Driver com as configurações padrão em um driver chamado myDriver.sys, use o seguinte comando:

verifier /standard /driver myDriver.sys

Para obter mais informações sobre opções de linha de comando, consulte Sintaxe de Comando do Verificador de Driver.

Como controlar o Verificador de Driver

Escolha seu método preferencial para controlar o Verificador de Driver:

  • GUI (Gerenciador de Verificador de Driver) – Mais fácil para iniciantes, interface visual
  • Linha de comando – mais rápido para usuários experientes, com script

Observação

Para iniciar o Driver Verifier Manager, consulte Como iniciar a seção anterior do Verificador de Driver.

Tarefas Comuns do Driver Verifier

Para cada uma das ações a seguir, você pode usar o Gerenciador de Verificador de Driver ou inserir uma linha de comando.

Para parar ou redefinir o Verificador de Driver

  1. No Gerenciador de Verificador de Driver, selecione Excluir configurações existentes e, em seguida, selecione Concluir.

    or

    Insira o seguinte comando em um prompt de comando:

    verifier /reset
    
  2. Reinicie o computador.

Para exibir estatísticas do Verificador de Driver

No Gerenciador de Verificador de Driver, selecione Exibir informações sobre os drivers verificados no momento e selecione Avançar. Continuar selecionando Avançar exibe informações adicionais.

or

Insira o seguinte comando em um prompt de comando:

verifier /query

Para exibir as configurações do Verificador de Driver

No Gerenciador de Verificador de Driver, selecione Exibir as configurações existentes e selecione Avançar.

or

Insira o seguinte comando em um prompt de comando:

verifier /querysettings

Como depurar violações do Driver Verifier

Para obter o maior benefício do Verificador de Driver, use um depurador de kernel e conecte-o ao computador de teste. Para obter uma visão geral das ferramentas de depuração para Windows, consulte Ferramentas de Depuração para Windows (WinDbg, KD, CDB, NTSD).

Se o Verificador de Driver detectar uma violação, ele gerará uma verificação de bug para interromper o computador. Essa ação fornece o máximo de informações possíveis para depurar o problema. Quando você conecta um depurador de kernel a um computador de teste que executa o Verificador de Driver e o Verificador de Driver detecta uma violação, o Windows invade o depurador e exibe uma breve descrição do erro.

Todas as violações detectadas pelo Verificador de Driver resultam em verificações de bugs. Essa verificação de erros normalmente é um Bug Check 0xC4. Para obter mais informações, consulte Depurando Verificação de Erros 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION e Verificação de Erros 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION.

Outros códigos comuns de verificação de bug incluem os seguintes códigos:

Para obter mais informações, consulte Como lidar com uma verificação de bugs quando o Verificador de Driver estiver habilitado.

Ao iniciar uma nova sessão de depuração, use o comando de extensão do depurador, !analyze. No modo kernel, o comando !analyze exibe informações sobre a verificação de bug mais recente. Para exibir informações adicionais para ajudar a identificar o driver com falha, adicione a opção -v ao comando no prompt kd> :

kd> !analyze -v

Além do !analyze, você pode inserir as seguintes extensões de depurador no prompt kd> para exibir informações específicas do Verificador de Driver:

  • Os dumps !verifier das estatísticas capturadas pelo Verificador de Driver. Use !verifier -? para exibir todas as opções disponíveis.

    kd> !verifier
    
  • !deadlock exibe informações sobre bloqueios ou objetos monitorados pelo recurso de detecção de deadlock do Verificador de Drivers. Use !deadlock -? para exibir todas as opções disponíveis.

    kd> !deadlock
    
  • !iovirp [endereço] exibe informações relacionadas a um IRP rastreado pelo I/O Verifier. Por exemplo:

    kd> !iovirp 947cef68
    
  • Encontre a regra de verificação de conformidade da DDI que foi violada. (RuleID é sempre o primeiro argumento para a verificação de bugs.) Todas as IDs de regra da verificação de conformidade de DDI estão no formulário 0x200nn.

Próximas etapas

Agora que você entende as noções básicas do Verificador de Driver, explore estes tópicos relacionados:

Obter Ajuda