verifier

Aplica-se a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012

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.

Importante

Você precisa estar no grupo Administradores no computador para usar o Driver Verifier. A execução do Driver Verifier pode fazer com que o computador falhe, de modo que você só deve executá-lo em computadores usados para teste e depuração.

Sintaxe

verifier /standard /all
verifier /standard /driver NAME [NAME ...]
verifier /flags <options> /all
verifier /flags <options> /driver NAME [NAME ...]
verifier /rules [OPTION ...]
verifier /query
verifier /querysettings
verifier /bootmode [persistent | disableafterfail | oneboot]
verifier /reset
verifier /faults [Probability] [PoolTags] [Applications] [DelayMins]
verifier /faultssystematic [OPTION ...]
verifier /log LOG_FILE_NAME [/interval SECONDS]
verifier /volatile /flags <options>
verifier /volatile /adddriver NAME [NAME ...]
verifier /volatile /removedriver NAME [NAME ...]
verifier /volatile /faults [Probability] [PoolTags] [Applications] [DelayMins]
verifier /domain <types> <options> /driver ... [/logging | /livedump]
verifier /logging
verifier /livedump
verifier /?
verifier /help

Parâmetros

Parâmetro Descrição
/all Direciona o utilitário Driver Verifier para verificar todos os drivers instalados após a próxima inicialização.
/bootmode [persistent \| disableafterfail \| oneboot \| resetonunusualshutdown] Controla se as configurações do utilitário Driver Verifier estão habilitadas após uma reinicialização. Para definir ou alterar essa opção, você precisa reinicializar o computador. Os seguintes métodos estão disponíveis:
  • persistent – garante que as configurações do Driver Verifier persistam (permaneçam em vigor) após muitas reinicializações. Essa é a configuração padrão.
  • disableafterfail – se a inicialização do Windows falhar, essa configuração desabilitará o utilitário Driver Verifier para reinicializações subsequentes.
  • oneboot – habilita as configurações do Driver Verifier apenas para a próxima vez que o computador for iniciado. O utilitário Driver Verifier é desabilitado para reinicializações subsequentes.
  • resetonunusualshutdown – o utilitário Driver Verifier persistirá até que ocorra um desligamento incomum. A abreviação, 'rous', pode ser usada.
/driver <driverlist> Especifica um ou mais drivers que serão verificados. O parâmetro driverlist é uma lista de drivers por nome binário, como driver.sys. Use um espaço para separar cada nome de driver. Não há suporte para valores curinga, como n*.sys.
/driver.exclude <driverlist> Especifica um ou mais drivers que serão excluídos da verificação. Esse parâmetro só será aplicável se todos os drivers forem selecionados para verificação. O parâmetro driverlist é uma lista de drivers por nome binário, como driver.sys. Use um espaço para separar cada nome de driver. Não há suporte para valores curinga, como n*.sys.
/faults Habilita o recurso Simulação de Poucos Recursos no utilitário Driver Verifier. Você pode usar /faults no lugar de /flags 0x4. No entanto, você não pode usar /flags 0x4 com os subparâmetros de /faults. Você pode usar os seguintes subparâmetros do parâmetro /faults para configurar a Simulação de Poucos Recursos:
  • Probabilidade – especifica a probabilidade de que o utilitário Driver Verifier falhe em uma determinada alocação. Digite um número (no formato decimal ou hexadecimal) para representar o número de chances em 10.000 de que o utilitário Driver Verifier falhará na alocação. O valor padrão, 600, significa 600/10000, ou 6%.
  • Marcas de Pool – limita as alocações que o utilitário Driver Verifier pode falhar em alocações com as marcas de pool especificadas. Use um caractere curinga (*) para representar várias marcas de pool. Para listar várias marcas de pool, separe as marcas com espaços. Por padrão, todas as alocações podem falhar.
  • Aplicativos – limita as alocações que o utilitário Driver Verifier pode falhar em alocações para o programa especificado. Digite o nome de um arquivo executável. Para listar programas, separe os nomes dos programas com espaços. Por padrão, todas as alocações podem falhar.
  • DelayMins – especifica o número de minutos após a inicialização durante os quais o utilitário Driver Verifier não falha intencionalmente em nenhuma alocação. Esse atraso permite que os drivers sejam carregados e o sistema se estabilize antes do início do teste. Digite um número (no formato decimal ou hexadecimal). O valor padrão é 7 (minutos).
/faultssystematic Especifica as opções para a simulação Recursos Baixos Sistemáticos. Use o sinalizador 0x40000 para selecionar a opção de simulação Recursos Baixos Sistemáticos. As seguintes opções estão disponíveis:
  • enableboottime – habilita injeções de falha em reinicializações do computador.
  • disableboottime – desabilita injeções de falha nas reinicializações do computador (essa é a configuração padrão).
  • recordboottime – habilita injeções de falha no modo what if entre reinicializações do computador.
  • resetboottime – desabilita injeções de falha em reinicializações do computador e limpa a lista de exclusões da pilha.
  • enableruntime – habilita injeções de falha dinamicamente.
  • disableruntime – desabilita injeções de falha dinamicamente.
  • recordruntime – habilita injeções de falha no modo what if dinamicamente.
  • resetruntime – desabilita dinamicamente as injeções de falha e limpa a lista de pilhas com falha anterior.
  • querystatistics – mostra as estatísticas atuais de injeção de falha.
  • incrementcounter – incrementa o contador de aprovação de teste usado para identificar quando uma falha foi injetada.
  • getstackid COUNTER – recupera o identificador de pilha injetada indicado.
  • excludestack STACKID – exclui a pilha da injeção de falha.
/flags <options> Ativa as opções especificadas após a próxima reinicialização. Esse número pode ser inserido no formato decimal ou hexadecimal (com um prefixo 0x). Qualquer combinação dos seguintes valores é permitida:
/flags <volatileoptions> Especifica as opções do utilitário Verificador de Driver que são alteradas imediatamente sem reinicialização. Esse número pode ser inserido em formato decimal ou hexadecimal (com prefixo 0x). Qualquer combinação dos seguintes valores é permitida:
  • Valor: 1 ou 0x1 (bit 0) – Pool especial
  • Valor: 2 ou 0x2 (bit 1) – Forçar verificação de IRQL
  • Valor: 4 ou 0x4 (bit 2) – Simulação de Poucos Recursos
<probability> Número entre 1 e 10.000 especificando a probabilidade de injeção de falha. Por exemplo, especificar 100 significa uma probabilidade de injeção de falha de 1% (100/10.000).

Se esse parâmetro não for especificado, a probabilidade padrão de 6% será usada.

<tags> Especifica as marcas de pool que serão injetadas com falhas, separadas por caracteres de espaço. Se esse parâmetro não for especificado, qualquer alocação de pool poderá ser injetada com falhas.
<apps> Especifica o nome do arquivo de imagem dos aplicativos que serão injetados com falhas, separados por caracteres de espaço. Se esse parâmetro não for especificado, a simulação de poucos recursos poderá ocorrer em qualquer aplicativo.
<minutes> Um número positivo especificando a duração do período após a reinicialização, em minutos, durante o qual nenhuma injeção de falha ocorrerá. Se esse parâmetro não for especificado, a duração padrão de 8 minutos será usada.
/iolevel <level> Especifica o nível da Verificação de E/S. O valor de [nível] pode ser 1 – Habilita a Verificação de E/S de Nível 1 (padrão) ou 2 – Habilita a Verificação de E/S de Nível 1 e a Verificação de E/S de Nível 2. Se a Verificação de E/S não estiver habilitada (usando /flags 0x10), /iolevel será ignorado.
/log <logfilename> [/intervalseconds] Cria um arquivo de log usando o nome especificado. O utilitário Driver Verifier grava periodicamente estatísticas nesse arquivo, com base no intervalo definido opcionalmente. O intervalo padrão é 30 segundos.

Se um comando /log do verificador for digitado na linha de comando, o prompt de comando não retornará. Para fechar o arquivo de log e retornar um prompt, use CTRL+C. Após uma reinicialização, para criar um log, você precisa enviar o comando /log ao verificador novamente.

/rules <option> Opções para regras que podem ser desabilitadas, incluindo:
  • query – mostra o status atual das regras controláveis.
  • reset – redefine todas as regras para o estado padrão.
  • default ID – define a ID da regra como o estado padrão. Para as regras com suporte, a ID da regra é o valor do parâmetro 1 da Verificação de Bugs 0xC4 (DRIVER_VERIFIER_DETECTED_VIOLATION).
  • disable ID – desabilita a ID da regra especificada. Para as regras com suporte, a ID da regra é o valor do parâmetro 1 da Verificação de Bugs 0xC4 (DRIVER_VERIFIER_DETECTED_VIOLATION).
/standard Ativa as opções "padrão" do Driver Verifier após a próxima reinicialização. As opções padrão são Pool Especial, Forçar Verificação de IRQL, Acompanhamento de Pool, Verificação de E/S, Detecção de Deadlock, Verificação de DMA, Verificações de Segurança, Verificações Diversas e Verificação de conformidade de DDI. Isso é equivalente a /flags 0x209BB.

[!OBSERVAÇÃO] Começando no Windows 10, em versões após a 1803, o uso de /flags 0x209BB não habilitará mais a verificação do WDF automaticamente. Use a sintaxe /standard para habilitar opções padrão, com a verificação do WDF incluída.

/volatile Altera as configurações sem reinicializar o computador. Configurações voláteis entram em vigor imediatamente.

Você pode usar o parâmetro /volatile com o parâmetro /flags para habilitar e desabilitar algumas opções sem reinicializar. Você também pode usar /volatile com os parâmetros /adddriver e /removedriver para iniciar ou interromper a verificação de um driver sem reinicializar, mesmo que o utilitário Driver Verifier não esteja em execução. Para obter mais informações, consulte Usando configurações voláteis.

/adddriver <volatiledriverlist> Adiciona os drivers especificados das configurações voláteis. Para especificar vários drivers, liste seus nomes separados por espaços. Não há suporte para valores curinga, como n.sys.
/removedriver <volatiledriverlist> Remove os drivers especificados das configurações voláteis. Para especificar vários drivers, liste seus nomes separados por espaços. Não há suporte para valores curinga, como n.sys.
/reset Limpa todas as configurações do utilitário Driver Verifier. Após a próxima reinicialização, nenhum driver será verificado.
/querysettings Exibe um resumo das opções que serão ativadas e dos drivers que serão verificados após a próxima inicialização. Essa exibição não inclui drivers e opções adicionadas usando o parâmetro /volatile. Para conhecer outras maneiras de exibir essas configurações, consulte Exibindo configurações do Driver Verifier.
/Query Exibe um resumo da atividade atual do utilitário Driver Verifier. O campo Nível na exibição é o valor hexadecimal das opções definidas com o parâmetro /volatile. Para obter explicações sobre cada estatística, consulte Monitorando contadores globais e Monitorando contadores individuais.
/domain <types> <options> Controla as configurações da extensão de verificador. Há suporte para os seguintes tipos de extensão de verificador:
  • wdm – habilita a extensão de verificador para drivers WDM.
  • ndis – habilita a extensão de verificador para drivers de rede.
  • ks – habilita a extensão de verificador para drivers de streaming no modo kernel.
  • audio – habilita a extensão de verificador para drivers de áudio.
. Há suporte para as seguintes opções de extensão:
  • rules.default – habilita regras de validação padrão para a extensão de verificador selecionada.
  • rules.all – habilita todas as regras de validação para a extensão de verificador selecionada.
/logging Habilita o registro em log para regras violadas detectadas pelas extensões de verificador selecionadas.
/livedump Habilita a coleta de despejo de memória ao vivo para regras violadas detectadas pelas extensões de verificador selecionadas.
/? Exibe a ajuda da linha de comando.

Códigos de retorno

Os seguintes valores são retornados após a execução do verificador de driver:

  • 0: EXIT_CODE_SUCCESS

  • 1: EXIT_CODE_ERROR

  • 2: EXIT_CODE_REBOOT_NEEDED

Comentários