Driver Verifier estático
Static Driver Verifier (também conhecido como "StaticDV" ou "SDV") é uma ferramenta de verificação estática que analisa sistematicamente o código-fonte de drivers de modo kernel do Windows. SDV é uma ferramenta de tempo de compilação que é capaz de descobrir defeitos e problemas de design em um driver. Com base em um conjunto de regras de interface e um modelo do sistema operacional, o SDV determina se o driver interage corretamente com o kernel do sistema operacional Windows.
Importante
O SDV não é mais suportado e o SDV não está disponível nas versões WDK ou EWDK do Windows 24H2. Ele não está disponível em WDKs mais recentes que a compilação 26017 e não está incluído no Windows 24H2 RTM WDK.
O SDV ainda pode ser usado baixando o Windows 11, versão 22H2 EWDK (lançado em 24 de outubro de 2023) com as ferramentas de compilação do Visual Studio 17.1.5 de Baixar o Kit de Driver do Windows (WDK). Recomenda-se apenas o uso do Enterprise WDK para executar o SDV. Usar versões mais antigas do WDK padrão em conjunto com versões recentes do Visual Studio não é recomendado, pois isso provavelmente resultará em falhas de análise.
No futuro, o CodeQL será a principal ferramenta de análise estática para drivers. O CodeQL fornece uma linguagem de consulta poderosa que trata o código como um banco de dados a ser consultado, simplificando a gravação de consultas para comportamentos, padrões e muito mais específicos.
Para obter mais informações sobre como usar o CodeQL, consulte CodeQL e o teste de logotipo de ferramentas estáticas.
Instalando o Verificador de Driver Estático
O Verificador de Driver Estático está disponível como parte do WDK (Kit de Driver do Windows) na experiência completa do WDK e no WDK corporativo autônomo. Além disso, os pacotes redistribuíveis do Visual C++ para Visual Studio são necessários para SDV executar. Veja o seguinte:
- Redistribuição do Visual Studio 2019
- Pacotes redistribuíveis do Visual C++ para Visual Studio 2017
- Pacotes Redistribuíveis do Visual C++ para o Visual Studio 2013
Para versões do SDV disponíveis no WDK para Windows 10, versão 1809 ou anterior, os pacotes redistribuíveis do Visual C++ para Visual Studio 2012 devem ser instalados em vez dos pacotes de 2017.
Integração com o Visual Studio
O Verificador de Driver Estático está integrado ao Visual Studio. Você pode executar a análise estática em seu projeto de driver do Visual Studio. Você pode iniciar, configurar e controlar o Verificador de Driver Estático no menu Driver no Visual Studio.
Documentação do Verificador de Driver Estático
- Problemas conhecidos do Verificador de Driver Estático: Lista os problemas conhecidos mais recentes do Verificador de Driver Estático
- Usando o verificador de driver estático para localizar defeitos em drivers: informa o que você precisa para começar a analisar seu código de driver no ambiente do Visual Studio.
- Comandos do Verificador de Driver Estático (MSBuild): Lista os comandos do MSBuild a serem usados para executar o SDV em uma janela do Prompt de Comando do Visual Studio.
- Apresentando o Verificador de Driver Estático: Fornece uma visão geral da ferramenta de análise estática.
- Usando o Verificador de Driver Estático: fornece os detalhes sobre como usar e configurar a ferramenta de análise estática.
- Relatório do verificador de driver estático: descreve o visualizador que exibe o rastreamento detalhado da análise de código estático.
- Regras do verificador de driver estático: As regras definem os requisitos para a interação adequada entre um modelo de driver e a interface do kernel do sistema operacional.
- Referência do verificador de driver estático: fornece informações de referência sobre os tipos de função de função, arquivos de configuração SDV, mensagens de erro e aviso.
Localizando bugs no código de driver do Windows
A Microsoft usa SDV para testar os drivers de modo kernel incluídos no sistema operacional Microsoft Windows e para testar os drivers de exemplo no WDK. Usando as regras de conformidade DDI para modelos de driver específicos, o SDV pode verificar o comportamento correto do driver. Por exemplo, o SDV pode verificar se o driver:
- Chama funções no IRQL correto
- Adquire e libera bloqueios na sequência correta
- Usa corretamente funções que manipulam pacotes de solicitação de E/S (IRP)
O SDV examina todos os caminhos possíveis através do código do driver. Ele é projetado para encontrar erros graves em caminhos obscuros que são improváveis de serem encontrados, mesmo em testes completos.
Recursos adicionais
Para obter informações específicas sobre os drivers que o SDV pode verificar, consulte Drivers suportados
Para obter mais informações e dicas sobre como usar o Verificador de Driver Estático, consulte o seguinte: