Propriedades do verificador de driver para projetos de pacote de driver
O Verificador de Driver é uma ferramenta de verificação em tempo de execução que aumenta a eficácia do 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ê sempre deve configurar uma conexão de depuração do modo kernel com o computador de teste ao habilitar 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 com a Depuração do Windows.
Definindo propriedades do Verificador de Driver para projetos de pacote 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, Instalação do Driver e, em seguida, 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 plataforma permitem que você aplique 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 compilações 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 do 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 driver ou drivers 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 driver
Especifica o driver ou a lista de drivers verificados pelo Verificador de Driver 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 de DDI (interface do driver de dispositivo) que marcar para a interação adequada entre um driver e a interface 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 de DMA, adaptadores e registros de mapa.
-
Quando essa opção está ativa, o Verificador de Driver coloca uma pressão de memória extrema no driver invalidando o código paginável. Se o driver tentar acessar a memória paginada no IRQL errado ou mantendo um bloqueio de rotação, o Verificador de Driver detectará esse comportamento.
-
Quando essa opção está ativa, o Verificador de Driver 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 energia e IRPs WMI.
-
Quando essa opção está ativa, o Verificador de Driver procura as causas comuns de falhas de driver, como o mau tratamento da memória liberada.
-
Quando essa opção está ativa, o Verificador de Driver verifica 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 no modo de usuário por rotinas do 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 estouros de memória, subexecutação de memória e memória que é acessada depois que ele é liberado.
Configurações específicas do cenário do verificador de driver
-
Quando essa opção está ativa, o Verificador de Driver falha aleatoriamente em solicitações de alocação de pool e 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 estiver ativa, o Verificador de Driver testará a resposta do driver para STATUS_PENDING retornar valores retornando STATUS_PENDING para 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 invariável de MDL para pilha (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 do driver. O Verificador de Driver pode detectar modificação ilegal de buffers de 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 de MDL invariáveis. Para usar essa opção, você deve habilitar a Verificação de E/S em pelo menos um driver.
Configuração de atraso do Power Framework (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 Injeção de Falha Baseada em Pilha injeta falhas de recurso em drivers no modo kernel. Essa opção usa um driver especial, KmAutoFail.sys, em conjunto com o Verificador de Driver para penetrar nos 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 baixos recursos.
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 serão habilitadas.
- Forçar solicitações de E/S pendentes
- Log do IRP
- Verificação invariável de MDL para pilha
- Verificação de MDL invariável para driver