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).
Inicie uma janela do Prompt de Comando selecionando Executar como administrador e digite verificador para abrir o Gerenciador de Verificador de Driver.
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.
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.
Se você escolher Selecionar nomes de driver em uma lista, selecione Avançar e, em seguida, selecione um ou mais drivers específicos.
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
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
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:
- 0xC1 de Verificação de Bugs: SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION
- 0xC6 de Verificação de Bugs: DRIVER_CAUGHT_MODIFYING_FREED_POOL
- 0xC9 de Verificação de Bugs: DRIVER_VERIFIER_IOMANAGER_VIOLATION
- 0xD6 de Verificação de Bugs: DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION
- 0xE6 de Verificação de Bugs: DRIVER_VERIFIER_DMA_VIOLATION
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.
Tópicos relacionados
Opções do Verificador de Driver
Sintaxe de comando do verificador de driver
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: ao longo de 2024, vamos eliminar problemas do GitHub como o mecanismo de comentários para conteúdo e substituí-lo por um novo sistema de comentários. Para obter mais informações, consulte:Enviar e exibir comentários de