Driver Verifier

O Driver Verifier monitora drivers gráficos e drivers no modo kernel do Windows para detectar chamadas de função ilegais ou ações que podem corromper o sistema. O Driver Verifier pode submeter drivers do Windows a uma variedade de pressões e testes para encontrar comportamentos inadequados. Você pode configurar quais testes executar, o que permite colocar um driver sob cargas de estresse pesadas ou realizar testes mais simplificados. Você também pode executar o Driver Verifier em vários drivers simultaneamente ou em um driver por vez.

Cuidado

  • Executar o Verificador de Driver pode causar uma falha no computador.
  • Você só deve executar o Verificador de Driver em computadores que você está usando para teste e depuração.
  • Você precisa estar no grupo Administradores no computador para usar o Driver Verifier.

Onde posso baixar o Verificador de Driver?

Você não precisa baixar o Verificador de Driver, pois ele está incluído na maioria das versões do Windows em %WinDir%\system32\ como 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 as 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

Execute o Verificador de Driver durante o desenvolvimento e o teste do driver. Mais especificamente, use o Verificador de Driver para as seguintes finalidades:

  • Para encontrar problemas no início do ciclo de desenvolvimento, quando eles são mais fáceis e menos caros de corrigir.

  • Para solucionar problemas e depurar falhas de teste e falhas no computador.

  • Para monitorar o comportamento ao implantar um driver para teste usando o WDK, o Visual Studio e os testes do Windows HLK (Hardware Lab Kit) ou do Kit de Certificação de Hardware do Windows (para Windows 8.1). Para obter mais informações sobre drivers de teste, consulte Testando um driver.

Como iniciar o Verificador de Driver

Você só deve executar o Verificador de Driver em computadores de teste ou em computadores que você está testando e depurando. Para obter o maior benefício do Verificador de Driver, você deve usar um depurador de kernel e conectar-se 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 de 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 do Verificador de Driver e classes de regra e Selecionando opções do verificador 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 drivers não assinados automaticamente

    Ú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 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 alguns acompanhamentos de recursos. Testar todos os drivers também pode afetar negativamente o desempenho do sistema.

    Selecionar nomes de driver em uma lista

    Na maioria dos casos, você desejará especificar quais drivers testar.

    Selecionar todos os drivers em uma pilha de dispositivos permite que a opção Verificação avançada de E/S acompanhe objetos e marcar 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 de acompanhamento 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 por vez.

  4. Se você escolher Selecionar nomes de driver em uma lista, selecione Avançar e, em seguida, 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 20150 a 25126 do Windows, se você tiver selecionado 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 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 Gerenciador de Verificador de Driver. Por exemplo, para executar o Verificador de Driver com as configurações padrão em um driver chamado myDriver.sys, você usaria 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

Você pode usar o Gerenciador de Verificador de Driver ou uma linha de comando para controlar o Verificador de Driver. Para iniciar o Gerenciador de Verificador de Driver, consulte Como iniciar o Verificador de Driver, anteriormente neste tópico.

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 do Verificador de Driver, selecione Excluir configurações existentes e, em seguida, selecione Concluir.

    ou

    Em um prompt de comando, digite o seguinte comando:

    verifier /reset
    
  2. Reinicie o computador.

Para exibir estatísticas do Verificador de Driver

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

ou

Em um prompt de comando, digite o seguinte comando:

verifier /query

Para exibir as configurações do Verificador de Driver

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

ou

Em um prompt de comando, digite o seguinte comando:

verifier /querysettings

Como depurar violações do Verificador de Driver

Para obter o maior benefício do Verificador de Driver, você deve usar um depurador de kernel e conectá-lo 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á um bug marcar parar o computador. Isso é para fornecer o máximo de informações possível para depurar o problema. Quando você tem um depurador de kernel conectado a um computador de teste que está executando o Verificador de Driver e o Verificador de Driver detecta uma violação, o Windows entra no depurador e exibe uma breve descrição do erro.

Todas as violações detectadas pelo Verificador de Driver resultam em verificações de bugs. Normalmente, esse é um 0xC4 de Verificação de Bugs. Para obter mais informações, consulte Depurando 0xC4 de verificação de bugs: DRIVER_VERIFIER_DETECTED_VIOLATION e 0xC4 de verificação de bugs: DRIVER_VERIFIER_DETECTED_VIOLATION.

Outros códigos comuns de marcar de bugs incluem o seguinte:

Para obter mais informações, consulte Manipulando uma verificação de bugs quando o verificador de driver está habilitado.

Quando você iniciar uma nova sessão de depuração, use o comando de extensão de depurador !analyze. No modo kernel, o comando !analyze exibe informações sobre o bug mais recente marcar. 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 de depurador no prompt kd> para exibir informações específicas do Verificador de Driver:

  • !despejos de verificador capturaram estatísticas do Verificador de Driver. 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 detecção de deadlock do Verificador de Driver. Use !deadlock -? para exibir todas as opções disponíveis.

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

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

Opções do Verificador de Driver

Sintaxe de comando do verificador de driver

Usando o Verificador de Driver

Controlando o Driver Verifier

Verificação de conformidade da DDI