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:

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

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: