Partilhar via


Comandos do Verificador de Driver Estático (MSBuild)

Você pode executar o Verificador de Driver Estático (SDV) em uma janela do Prompt de Comando do Visual Studio , instalando o Kit de Driver do Windows (WDK) ou executando o Enterprise Windows Driver Kit (EWDK). Navegue até o diretório onde o arquivo de projeto do driver ou o arquivo de projeto da biblioteca está armazenado. Os parâmetros podem aparecer em qualquer ordem na linha de comando.

Important

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 do 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 em Baixar o Kit de Driver do Windows (WDK). Somente o uso do Enterprise WDK para executar SDV é recomendado. O uso de 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 ferramenta principal de análise estática para controladores. O CodeQL fornece uma linguagem de consulta poderosa que trata o código como um banco de dados a ser consultado, simplificando a escrita 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.

msbuild /t:sdv /p:Inputs="Parameters" ProjectFile /p:Configuration=configuration /p:Platform=platform

Você deve selecionar uma configuração Release (por exemplo, /p:Configuration="Windows 7 Release"). Para obter a lista de configurações de versão suportadas, consulte Criando um driver. A plataforma pode ser Win32 (para x86) ou x64 (por exemplo, /p:Platform=Win32).

Note

Certifique-se de verificar o plano de gerenciamento de energia do computador para garantir que o computador não entre em estado de suspensão durante a análise.

Parameters

/scan

Verifica o código-fonte do driver em busca de declarações de tipo de função de função. Para obter informações sobre como declarar as funções de retorno de chamada fornecidas pelo driver e as rotinas de despacho, consulte Usando declarações de tipo de função de função. Durante essa verificação, o SDV tenta detetar os pontos de entrada do driver necessários para verificar o driver. Ele registra os resultados da verificação em Sdv-map.h, um arquivo que cria no diretório de projeto do driver.

Para obter mais informações, consulte Preparando seu código-fonte.

/check:<em>Rule</em> |Rule,...

Inicia uma verificação com a(s) regra(s) especificada(s). Você pode especificar mais de uma regra separando cada regra com uma vírgula. Execute o comando /check: e especifique o arquivo de projeto do Visual Studio do driver (*.vcxproj).

Regra é o nome de uma regra ou um padrão de nome de regra que inclui caracteres curinga (*) para representar um ou mais caracteres. Quando usado sozinho, o caractere curinga (*) representa todas as regras.

/check:RuleList.sdv

Inicia uma verificação com as regras no arquivo de lista de regras especificado. Você pode listar apenas um arquivo com esse parâmetro. No arquivo de lista de regras, cada linha pode ser o nome de uma regra ou pode ser um caractere curinga (*), que representa todas as regras SDV. Execute o comando /check:RuleList.sdv e especifique o arquivo de projeto do Visual Studio do driver (*.vcxproj).

RuleList.sdv é o caminho totalmente qualificado e o nome de arquivo de um arquivo de lista de regras. O arquivo deve ter a extensão de nome de arquivo .sdv . A menos que o arquivo esteja no diretório local, o caminho é necessário. Se o caminho ou o nome do arquivo incluir espaços, você deverá incluir RuleList.SDV entre aspas.

Se você especificar a opção /check: sem especificar uma regra, o SDV será executado com a regra padrão definida para o modelo de driver.

/lib

Processa a biblioteca no diretório atual. O SDV chama MSBuild.exe para compilar e construir a biblioteca para uso externo e gera os arquivos necessários para incluir a biblioteca na verificação do driver.

Use esse parâmetro antes de verificar os drivers que exigem a biblioteca. Execute o comando msbuild /t:sdv /p:Inputs="/lib" e especifique o arquivo de projeto do Visual Studio (*.vcxproj) para a biblioteca.

Para obter mais informações sobre o uso e o efeito do parâmetro /lib , consulte Processamento de biblioteca no verificador de driver estático.

/view

Abre o Verificador de Driver Estático. Execute comandos /view e especifique o arquivo de projeto do Visual Studio do driver (*.vcxproj).

Os resultados ficam disponíveis assim que uma verificação é concluída e permanecem disponíveis até que você use um comando /clean para excluir os arquivos SDV do diretório de projeto do driver.

/clean

Exclui arquivos SDV do diretório. Como esses arquivos são usados para gerar a exibição do Relatório do Verificador de Driver Estático, o comando /clean também exclui o relatório da verificação.

Execute um comando /clean e especifique o arquivo de projeto do Visual Studio (*.vcxproj) para o driver ou biblioteca. O comando exclui arquivos SDV somente para o projeto especificado.

Execute um comando /clean para um projeto de driver antes de cada verificação.

Execute um comando /clean para uma biblioteca quando os arquivos da biblioteca estiverem desatualizados, como quando o código da biblioteca for alterado.

Um comando /clean não remove o arquivo Sdv-map.h, se o sinalizador aprovado estiver definido como true no arquivo Sdv-map.h (Approved=true). SDV pode então usar esse arquivo para verificações futuras.

/?

Exibe o uso de comandos SDV. Os comandos que usam esse parâmetro não precisam ser executados em uma janela de ambiente de compilação.

Comments

Executando msbuild /t:/sdv p:/Inputs= /? sem parâmetros exibe o uso para os comandos SDV.

Um comando /clean exclui os arquivos que o SDV usa para criar a exibição do Relatório do Verificador de Driver Estático para uma verificação. Depois de executar esse comando, a exibição do Relatório do Verificador de Driver Estático para a verificação não está mais disponível.

Examples

Para executar SDV usando todas as regras nos arquivos de driver no diretório local para o projeto mydriver:

msbuild /t:sdv /p:Inputs="/check:*" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32

Para executar SDV usando a regra CancelSpinLock nos arquivos de driver no diretório local:

msbuild /t:sdv /p:Inputs="/check:CancelSpinLock" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

Para executar o SDV usando a regra especificada no arquivo de lista de regras Rules1.sdv no diretório D:\SDV:

msbuild /t:sdv /p:Inputs="/check:D:\SDV\Rules1.sdv" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

Para executar o SDV novamente, desta vez usando a opção /clean:

msbuild /t:sdv /p:Inputs="/clean" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32

Para exibir o Verificador de Driver Estático para que você possa visualizar os resultados da verificação mais recente do driver no diretório local:

msbuild /t:sdv /p:Inputs="/view" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

Usando o verificador de driver estático para encontrar defeitos nos drivers do Windows