Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Verificador de Drivers é uma ferramenta de verificação em tempo de execução que aumenta a eficácia dos testes de drivers. Você pode habilitar e configurar o Verificador de Driver para ser executado em todos os computadores de teste ao implantar seu driver para teste.
É essencial sempre configurar uma conexão de depuração em modo kernel com o computador de teste ao habilitar o Driver Verifier no computador de teste remoto. Para obter informações sobre como configurar um computador de destino e configurar um cabo de depuração, consulte Introdução à Depuração do Windows.
Configurando propriedades do verificador de drivers para projetos de pacotes de driver
- Abra as páginas de propriedades do pacote de driver. Selecione e segure (ou clique com o botão direito do mouse) no projeto do pacote de driver no Gerenciador de Soluções e selecione Propriedades.
- Nas páginas de propriedades do pacote de driver, selecione Propriedades de Configuração, Selecione Instalação do Driver e, em seguida, selecione Verificação de Driver.
- Selecione a opção Habilitar Verificação de Driver . Quando essa opção estiver selecionada, você poderá selecionar o driver ou os drivers a serem verificados no computador de teste e selecionar as opções do Verificador de Driver a serem usadas.
Configuração e plataforma do projeto
A lista de configurações e a lista de plataformas permitem aplicar diferentes configurações de implantação para diferentes combinações de configuração de projeto e plataforma. Por exemplo, você pode implantar um driver em um computador de teste usando um conjunto de opções de implantação para builds de depuração e para um computador de teste diferente usando opções de implantação para builds de versão.
Habilitar Verificador de Driver
Você pode habilitar o Verificador de Driver no computador de teste para todos os drivers no computador, somente para o projeto de driver ou para uma lista de drivers especificados. Por exemplo, talvez você queira habilitar o Verificador de Driver para o conjunto de drivers na pilha de um dispositivo específico.
Verificar drivers
Especifica qual(is) driver(s) verificar no computador de teste.
Todos os drivers
Especifica que o Verificador de Driver verifica todos os drivers instalados no computador de teste remoto.
Saída do projeto
Especifica que o Verificador de Driver verifica o projeto de driver instalado no computador de teste remoto. Essa é a opção padrão.
Lista de controladores
Especifica o driver ou a lista de drivers que o Verificador de Drivers verifica no computador de teste remoto. Por exemplo, você pode listar todos os drivers associados a um dispositivo específico. Especifique os drivers por nome binário, por exemplo, Driver.sys. Use um ponto-e-vírgula para separar uma lista de drivers. Não há suporte para valores curinga, como n*.sys.
Sinalizadores padrão do verificador de driver
Você pode configurar as seguintes opções do Verificador de Driver no computador de teste.
Verificação de conformidade de DDI (Windows 8)
Quando essa opção está ativa, o Verificador de Driver aplica um conjunto de regras DDI (interface de driver de dispositivo) que verificam a interação adequada entre um driver e a interface do kernel do sistema operacional.
-
Quando essa opção está ativa, o verificador de driver monitora o uso do driver de bloqueios de rotação, mutexes e mutexes rápidos. Isso detecta se o código do driver tem o potencial de causar um deadlock em algum momento.
-
Quando essa opção está ativa, o Verificador de Driver monitora o uso do driver de rotinas de DMA (acesso direto à memória). Isso detecta o uso inadequado de buffers DMA, adaptadores e registradores de mapeamento.
-
Quando essa opção está ativa, o Verificador de Driver coloca uma pressão extrema de memória no driver invalidando o código paginável. Se o driver tentar acessar a memória paginada no IRQL errado ou enquanto mantém um bloqueio de rotação, o verificador de driver detectará esse comportamento.
-
Quando essa opção está ativa, o Driver Verifier aloca os IRPs (Pacotes de Solicitação de Interrupção) do driver de um pool especial e monitora a manipulação de E/S do driver. Isso detecta o uso ilegal ou inconsistente de rotinas de E/S. O Verificador de Driver também monitora as chamadas de várias rotinas do Gerenciador de E/S e executa testes de estresse de IRPs Plug-and-Play (PnP), IRPs de gerenciamento de energia e IRPs de WMI.
-
Quando essa opção está ativa, o Verificador de Driver procura causas comuns de falhas de driver, como o manuseio incorreto da memória liberada.
-
Quando essa opção estiver ativa, o Verificador de Driver verificará se o driver liberou todas as alocações de memória quando ele é descarregado. Isso revela vazamentos de memória.
-
Quando essa opção está ativa, o Verificador de Driver procura erros comuns que podem resultar em vulnerabilidades de segurança, como uma referência a endereços de modo de usuário por rotinas de modo kernel.
-
Quando essa opção está ativa, o Verificador de Driver aloca a maioria das solicitações de memória do driver de um pool especial. Esse pool especial é monitorado para excessos de memória, subutilização de memória e memória que é acessada após a liberação.
Configurações específicas de cenário do Verificador de Driver
-
Quando essa opção estiver ativa, o Verificador de Driver falhará aleatoriamente nas solicitações de alocação do pool e em outras solicitações de recurso. Ao injetar essas falhas de alocação no sistema, o Verificador de Driver testa a capacidade do driver de lidar com uma situação de baixo recurso.
Forçar solicitações de E/S pendentes
Quando essa opção está ativa, o Verificador de Driver testa a resposta do driver a valores de retorno STATUS_PENDING, ao retornar STATUS_PENDING em chamadas aleatórias para IoCallDriver.
-
Quando essa opção está ativa, o Verificador de Driver monitora o uso de IRPs por um driver e cria um log de uso do IRP.
Verificação de Invariantes MDL para Stack (Windows 8)
A opção Verificação Invariável de MDL para Pilha monitora como o driver lida com buffers MDL invariáveis na pilha de driver. O Verificador de Driver pode detectar modificações ilegais de buffers MDL invariáveis. Para usar essa opção, a Verificação de E/S deve ser habilitada em pelo menos um driver.
Verificação invariável de MDL para Driver (Windows 8)
A opção Verificação invariável de MDL para Driver monitora como o driver lida com buffers MDL invariáveis por driver. Essa opção detecta modificação ilegal de buffers MDL invariáveis. Para usar essa opção, você deve habilitar a Verificação de E/S em pelo menos um driver.
Power Framework Delay Fuzzing (Windows 8)
Quando essa opção está ativa, o Verificador de Driver randomiza agendamentos de thread para ajudar a eliminar erros de simultaneidade no driver.
Injeção de falha baseada em pilha (Windows 8)
A opção Stack Based Failure Injection injeta falhas de recurso em drivers no modo de núcleo. Essa opção usa um driver especial, KmAutoFail.sys, em conjunto com o Verificador de Driver para explorar os caminhos de tratamento de erros do driver.
Nota Não é possível combinar a injeção de falha baseada em pilha com simulação de recursos baixos.
Opções do Verificador de Driver que exigem verificação de E/S
Há quatro opções que exigem que você primeiro habilite a Verificação de E/S. Se a Verificação de E/S não estiver habilitada, essas opções não estarão habilitadas.
- Forçar solicitações de E/S pendentes
- Registro de IRP
- Verificação de Invariantes de MDL para Stack
- Verificação invariável de MDL para Driver