Partilhar via


Verificador de Controladores

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

Quer esteja a desenvolver novos controladores ou a resolver problemas de controladores existentes, o Verificador de Controladores fornece as capacidades de deteção precoce e depuração de que necessita para criar controladores fiáveis e de alta qualidade. Este guia abrangente cobre 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 as suas necessidades específicas
  • Depurar violações e interpretar resultados
  • Aplicar as práticas recomendadas para os fluxos de trabalho de teste de driver

Importante

  • A execução do Verificador de Driver pode fazer com que o computador falhe.
  • Execute o Verificador de Driver somente em computadores que você usa para teste e depuração.
  • Você deve estar no grupo Administradores no computador para usar o Verificador de Driver.

Onde posso obter o Driver Verifier?

Você não precisa obter o Verificador de Driver, porque a maioria das versões do Windows o inclui 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 Verificador de driver: Novidades.

Quando usar o Verificador de Driver

Use o Verificador de Driver durante todo o processo de desenvolvimento e teste de drivers:

Primeiros desenvolvimentos

  • Encontre problemas no início do ciclo de desenvolvimento, quando eles são mais fáceis e menos dispendiosos de corrigir
  • Evite atrasos dispendiosos detetando problemas antes que eles atinjam a produção

Solução de problemas

  • Depurar falhas de teste e falhas informáticas rapidamente
  • Identificar as causas raízes da instabilidade do sistema relacionada com o driver

Teste e implantação

Para obter orientações abrangentes sobre testes de motoristas, consulte Testando um driver.

Importante

O Programa de Compatibilidade de Hardware do Windows requer o CodeQL para testes de logotipo de ferramenta estática (STL) em nossos sistemas operacionais cliente e servidor. Continuamos a manter o suporte para SDV e CA em produtos mais antigos. Os parceiros são altamente incentivados a rever os requisitos do CodeQL para o Teste de Logotipo de Ferramenta 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 Driver Verifier

Execute o Verificador de Controladores somente em computadores de teste ou em computadores que o utilizador está a testar e a depurar. Para obter o máximo benefício do Verificador de Driver, use um depurador do 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 verificador 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 as configurações predefinidas ou para selecionar opções individuais. Para obter mais informações, consulte Opções e classes de regras do Verificador de Driver e Selecionando opções do Verificador de Driver.

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

    Opção Utilização recomendada
    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 termos do número de drivers que são testados em um sistema. Esta 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 Pool Especial e algum rastreamento de recursos. Testar todos os drivers também pode afetar negativamente o desempenho do sistema.
    Selecionar nomes de drivers de uma lista Na maioria dos casos, você deseja especificar quais drivers testar.

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

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

  5. Selecione Concluir e, em seguida, reinicie o computador.

Observação

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

Executar o verificador de controladores num prompt de comando

Você também pode executar o Verificador de Controladores numa janela de Prompt de Comando, sem iniciar o Gestor do Verificador de Controladores. 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 o seu método preferido para controlar o Verificador de Driver:

  • Driver Verifier Manager (GUI) - Mais fácil para iniciantes, interface visual
  • Linha de comando - Mais rápido para usuários experientes, programável

Observação

Para iniciar o Gerenciador de Verificadores de Driver, consulte a seção anterior Como iniciar o Verificador de Driver .

Tarefas comuns do Verificador de Driver

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

Para parar ou redefinir o Verificador de Driver

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

    ou

    Digite o seguinte comando em um prompt de comando:

    verifier /reset
    
  2. Reinicie o computador.

Para visualizar as estatísticas do Driver Verifier

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

ou

Digite o seguinte comando em um prompt de comando:

verifier /query

Para visualizar as configurações do Verificador de Driver

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

ou

Digite o seguinte comando em um prompt de comando:

verifier /querysettings

Como depurar violações do Verificador de Driver

Para tirar o maior proveito do Driver Verifier, use um depurador do 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 Driver Verifier detetar uma violação, ele gerará uma verificação de bug para parar o computador. Esta ação fornece o máximo de informações possível para depurar o problema. Quando você conecta um depurador do kernel a um computador de teste que executa o Verificador de Driver e o Verificador de Driver deteta uma violação, o Windows invade o depurador e exibe uma breve descrição do erro.

Todas as violações detetadas pelo Driver Verifier resultam em verificações de bugs. Esta verificação de erros é tipicamente uma Verificação de Erros 0xC4. Para obter mais informações, consulte Debugging Bug Check 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION e Bug Check 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION.

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

Para obter mais informações, consulte Manipulando uma verificação de bug quando o verificador de driver está 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 bugs 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 de !analyze, você pode inserir as seguintes extensões do depurador no prompt do kd> para exibir informações específicas do Verificador de Driver:

  • !verifier captura estatísticas do Driver Verifier. Use !verifier -? para exibir todas as opções disponíveis.

    kd> !verifier
    
  • !deadlock exibe informações relacionadas a bloqueios ou objetos rastreados pelo recurso de deteção de deadlock do Driver Verifier. Use !deadlock -? para exibir todas as opções disponíveis.

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

    kd> !iovirp 947cef68
    
  • Procure a regra de verificação de conformidade DDI que foi violada. (RuleID é sempre o primeiro argumento para a verificação de bug.) Todos os IDs de regras da verificação de conformidade DDI estão no formato 0x200nn.

Próximos passos

Agora que você entende os conceitos básicos do Verificador de Driver, explore estes tópicos relacionados:

Obter Ajuda