Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Verificador de Driver é uma ferramenta de verificação em tempo de execução que aumenta a eficácia do seu teste de driver. Você pode habilitar e configurar o Verificador de Driver para ser executado em todos os computadores de teste ao implantar o driver para teste.
Você deve sempre configurar uma conexão de depuração em modo kernel com o computador de teste, quando ativar o Verificador de Driver 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.
Definindo propriedades do Verificador de Controladores para projetos de pacote de controladores
- Abra as páginas de propriedades do seu pacote de driver. Selecione e segure (ou clique com o botão direito do mouse) o 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, Instalação de Driver e Verificação de Driver.
- Selecione a opção Ativar verificação de driver. Quando esta opção é selecionada, pode-se selecionar o driver ou drivers para verificar no computador de teste e pode-se selecionar as opções de Driver Verifier para usar.
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 configurações de projeto e combinações de plataforma. Por exemplo, você pode implantar um driver em um computador de teste usando um conjunto de opções de implantação para compilações de depuração e em um computador de teste diferente usando opções de implantação para compilações de versão.
Ativar Verificador de Controladores
Você pode habilitar o Verificador de Driver no computador de teste para todos os drivers no computador, apenas para o projeto de driver ou para uma lista de drivers especificados. Por exemplo, pode ser que desejes ativar o Verificador de Controladores para o conjunto de controladores que estão na pilha de um dispositivo específico.
Verificar Drivers
Especifica quais controladores verificar no computador de teste.
Todos os Controladores
Especifica que o Verificador de Driver verifica todos os drivers instalados no computador de teste remoto.
Resultados do Projeto
Especifica que o Verificador de Driver verifica o projeto de driver instalado no computador de teste remoto. Esta é a opção padrão.
Lista de Motoristas
Especifica o driver ou a lista de drivers que o Verificador de Driver 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 Controladores
Você pode configurar as seguintes opções do Verificador de Driver no computador de teste.
Verificação de conformidade DDI (Windows 8)
Quando essa opção está ativa, o Verificador de Driver aplica um conjunto de regras de interface de driver de dispositivo (DDI) que verificam a interação adequada entre um driver e a interface do kernel do sistema operacional.
-
Quando essa opção está ativa, o Driver Verifier monitora o uso de spin locks, mutexes e mutexes rápidos pelo driver. Isso deteta se o código do driver tem o potencial de causar um impasse em algum momento.
-
Quando essa opção está ativa, o Verificador de Driver monitora o uso do driver de rotinas de acesso direto à memória (DMA). Isso deteta o uso inadequado de buffers, adaptadores e registros de mapa DMA.
-
Quando esta opção está ativa, o Driver Verifier aplica extrema pressão sobre a memória do driver através da invalidação do 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 deteta esse comportamento.
-
Quando esta opção está ativa, o Verificador de Driver aloca os IRPs (Pacotes de Pedido de Interrupção) do driver de um pool especial e monitora a manipulação de E/S do driver. Isso deteta o uso ilegal ou inconsistente de rotinas de E/S. O Driver Verifier também monitora as chamadas de várias rotinas do Gerenciador de E/S e realiza testes de estresse de IRPs Plug-and-Play (PnP), IRPs de alimentação e IRPs WMI.
-
Quando esta opção está ativa, o Verificador de Controladores procura causas comuns de falhas em controladores, como o manuseio incorreto da memória liberada.
-
Quando essa opção está ativa, o Verificador de Driver verifica se o driver liberou todas as suas alocações de memória quando é 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.
Verificação especial da piscina
Quando esta opção está ativa, o Driver Verifier aloca a maioria das solicitações de memória do driver de um pool especial. Esse pool especial é monitorizado para sobrecargas de memória, subutilizações de memória e memória que é acedida depois de libertada.
Configurações específicas do cenário do verificador de driver
-
Quando essa opção está ativa, o Verificador de Driver falha aleatoriamente nas solicitações de alocação de pool e outras solicitações de recursos. Ao injetar essas falhas de alocação no sistema, o Driver Verifier testa a capacidade do motorista de lidar com uma situação de poucos recursos.
Forçar solicitações de E/S pendentes
Quando esta opção está ativa, o Verificador de Driver testa a resposta do driver aos valores de retorno STATUS_PENDING, devolvendo STATUS_PENDING para chamadas aleatórias a IoCallDriver.
-
Quando esta opção está ativa, o Verificador de Controladores monitora o uso de IRPs por um controlador e cria um registo do uso de IRPs.
Verificação de Invariância MDL para Stack (Windows 8)
A opção Invariant MDL Checking for Stack monitora como o driver lida com buffers MDL invariantes na pilha de drivers. Driver Verifier pode detetar a modificação ilegal de buffers MDL invariantes. Para usar essa opção, a Verificação de E/S deve estar habilitada em pelo menos um driver.
Verificação MDL invariante para driver (Windows 8)
A opção Invariant MDL Checking for Driver monitora como o driver lida com buffers MDL invariantes por driver. Esta opção deteta a modificação ilegal de buffers MDL invariantes. Para usar essa opção, você deve habilitar a Verificação de E/S em pelo menos um driver.
Power Framework Fuzzing de Atraso (Windows 8)
Quando esta opção está ativa, o Verificador de Driver randomiza o escalonamento de threads para ajudar a eliminar erros de concorrência no driver.
Injeção de falha baseada em pilha (Windows 8)
A opção Stack Based Failure Injection injeta falhas de recursos em drivers de modo kernel. Esta opção usa um driver especial, KmAutoFail.sys, em conjunto com o Verificador de Drivers para investigar os caminhos de tratamento de erros do driver.
Observação Não é possível combinar a injeção de falha baseada em pilha com a simulação de poucos recursos.
Opções do Verificador de Driver que exigem Verificação de E/S
Há quatro opções que exigem que você habilite primeiro a Verificação de E/S. Se a Verificação de E/S não estiver habilitada, essas opções não serão habilitadas.
- Forçar solicitações de E/S pendentes
- Registo IRP
- Verificação de MDL invariante para pilha
- Verificação MDL invariante para driver