Como executar a Análise de Código para drivers

A Análise de Código para Drivers fornece informações sobre possíveis defeitos no código-fonte. Você pode executar a análise de código manualmente e também pode executar a análise de código automaticamente com cada build.

Neste tópico:

Executando a análise de código

Para executar a análise de código no código-fonte do driver manualmente

  1. No Visual Studio, selecione o arquivo de projeto de driver ou a solução e selecione a configuração do projeto e a plataforma a serem analisadas.
  2. No menu Analisar ou Compilar , clique em Executar Análise de Código na Solução.

Para executar a análise de código no código-fonte do driver automaticamente com cada build

  1. No Visual Studio, clique com o botão direito do mouse no projeto ou solução do driver no Gerenciador de Soluções e clique em Propriedades.
  2. Na caixa de diálogo propriedades do projeto, clique em Análise de Código.
  3. Na página Análise de Código para Propriedades do C/C++, selecione a configuração e a plataforma do projeto que você deseja analisar (por exemplo, Windows 8 e Win32).
  4. Selecione Habilitar Análise de Código para C/C++ no Build.
  5. Em Conjunto de regras, selecione Regras Recomendadas do Microsoft Driver. Essa é a regra padrão definida para drivers.
  6. No menu Compilar , clique em Compilar Solução.

Exibindo os resultados da análise de código

Se possíveis defeitos forem encontrados no código-fonte, a janela Resultados da Análise de Código exibirá o número de aviso de análise de código e o número de linha no arquivo de origem em que o defeito ocorre.

Para exibir defeitos

  1. Na janela Resultados da Análise de Código , clique no número de linha e uma descrição do defeito é exibida na janela Resultados da Análise de Código .

    A janela Código exibe o código-fonte e indica onde o defeito ocorre.

  2. Para saber mais sobre um aviso específico, clique no Aviso na janela Resultados da Análise de Código .

Para exibir o arquivo de log de análise de código associado a um build

  1. Navegue até o diretório para sua configuração e plataforma de build (por exemplo, \\Windows7Release\\x64).
  2. Se você usar as regras recomendadas, o arquivo de log será chamado vc.\*codeanalysis.xmlde . Se você estiver criando um driver para Windows Server 2012, esse arquivo será usado para criar o log de Verificação de Driver.

Suprimindo o relatório de defeitos

Em alguns casos, talvez você queira suprimir o relatório de mensagens de aviso específicas; por exemplo, se o aviso for principalmente informativo e você souber a causa do erro.

Para suprimir mensagens de aviso

  1. Para remover uma instância de um defeito relatado, selecione o número de linha e o aviso na janela Resultados da Análise de Código .

  2. Na descrição expandida do aviso, clique em Ações>Suprimir Mensagem>na origem.

    Uma diretiva de aviso pragma com o especificador de supressão suprime o aviso somente para a linha de código que segue imediatamente a instrução de aviso #pragma.

    #pragma warning(suppress: 6014)
    

Alterando os limites de uso da pilha para o aviso C6262 para drivers no modo kernel

No modo de usuário e no código do modo kernel, o espaço de pilha é limitado e a falha ao confirmar uma página de pilha causa uma exceção de estouro de pilha. O alto uso da pilha é particularmente uma preocupação no modo kernel porque o espaço total de pilha disponível é de apenas 12 KB. O código do modo kernel deve limitar agressivamente o uso da pilha.

A ferramenta Análise de Código emitirá o aviso C6262 se mais de 1 KB de espaço de pilha for usado localmente em uma função. Se você quiser investigar funções que podem ser potencialmente intensivas em recursos, poderá personalizar ou reduzir o limite de pilha usado pelo C6262. Se você reduzir o limite de pilha, a ferramenta análise de código poderá encontrar mais problemas. Em seguida, você pode optar por resolver esses problemas de uso de pilha. Por exemplo, você pode reduzir o limite para 400 bytes para ver se outras funções estão usando recursos.

Para personalizar o limite de stacksize para C6262

  1. Abra o arquivo de projeto do Visual Studio (.vcxproj) para o driver do modo kernel (ou componente) no Bloco de Notas ou em outro editor de texto.
  2. Adicione um novo <ItemDefinitionGroup> para o compilador< ClCompile>.
  3. Adicione o <elemento PREfastAdditionalOptions> e defina os bytes> de stacksize<. O valor padrão é stacksize1024.
     <ItemDefinitionGroup>
       <ClCompile>


      <!-- Change stack depth for C6262 from 1024 to 400 -->
      <PREfastAdditionalOptions>stacksize400</PREfastAdditionalOptions>

    </ClCompile>
  </ItemDefinitionGroup>
  1. Salve o arquivo de projeto. Inicie o Visual Studio, carregue o projeto de driver atualizado e execute a análise de código.

    Para reverter para o padrão de 1 KB, desfaça as alterações feitas no arquivo de projeto ou altere o valor do tamanho da pilha para stacksize1024.

Análise de código para avisos de drivers