Comment exécuter l’analyse du code pour les pilotes

L’analyse du code pour les pilotes fournit des informations sur les défauts possibles dans le code source. Vous pouvez exécuter l’analyse du code manuellement, et vous pouvez également exécuter l’analyse du code automatiquement à chaque build.

Dans cette rubrique :

Exécution de l'analyse du code

Pour exécuter manuellement l’analyse du code sur le code source du pilote

  1. Dans Visual Studio, sélectionnez le fichier ou la solution du projet de pilote, puis sélectionnez la configuration du projet et la plateforme à analyser.
  2. Dans le menu Analyser ou Générer , cliquez sur Exécuter l’analyse du code sur la solution.

Pour exécuter automatiquement l’analyse du code sur le code source du pilote avec chaque build

  1. Dans Visual Studio, cliquez avec le bouton droit sur le projet ou la solution de pilote dans Explorateur de solutions, puis cliquez sur Propriétés.
  2. Dans la boîte de dialogue propriétés du projet, cliquez sur Analyse du code.
  3. Dans la page Propriétés Analyse du code pour C/C++, sélectionnez la configuration du projet et la plateforme que vous souhaitez analyser (par exemple, Windows 8 et Win32).
  4. Sélectionnez Activer l’analyse du code pour C/C++ lors de la génération.
  5. Sous Ensemble de règles, sélectionnez Règles recommandées pour les pilotes Microsoft. Il s’agit de l’ensemble de règles par défaut pour les pilotes.
  6. Dans le menu Générer , cliquez sur Générer la solution.

Affichage des résultats de l’analyse du code

Si des défauts possibles sont détectés dans le code source, la fenêtre Résultats de l’analyse du code affiche le numéro d’avertissement de l’analyse du code et le numéro de ligne dans le fichier source où le défaut se produit.

Pour afficher les défauts

  1. Dans la fenêtre Résultats de l’analyse du code , cliquez sur le numéro de ligne et une description du défaut s’affiche dans la fenêtre Résultats de l’analyse du code .

    La fenêtre Code affiche le code source et indique où se produit le défaut.

  2. Pour en savoir plus sur un avertissement particulier, cliquez sur l’avertissement dans la fenêtre Résultats de l’analyse du code .

Pour afficher le fichier journal d’analyse du code associé à une build

  1. Accédez au répertoire de votre configuration de build et de votre plateforme (par exemple, \\Windows7Release\\x64).
  2. Si vous utilisez les règles recommandées, le fichier journal est appelé vc.\*codeanalysis.xml. Si vous créez un pilote pour Windows Server 2012, ce fichier est utilisé pour créer le journal de vérification du pilote.

Suppression du rapport des défauts

Dans certains cas, vous pouvez supprimer le rapport d’un message d’avertissement particulier ; par exemple, si l’avertissement est principalement informatif et que vous connaissez la cause de l’erreur.

Pour supprimer les messages d’avertissement

  1. Pour supprimer un instance d’un défaut signalé, sélectionnez le numéro de ligne et l’avertissement dans la fenêtre Résultats de l’analyse du code.

  2. Dans la description développée de l’avertissement, cliquez sur Actions>Supprimer le message>dans la source.

    Une directive d’avertissement pragma avec le spécificateur suppress supprime l’avertissement uniquement pour la ligne de code qui suit immédiatement l’instruction d’avertissement #pragma.

    #pragma warning(suppress: 6014)
    

Modification des limites d’utilisation de la pile pour l’avertissement C6262 pour les pilotes en mode noyau

Dans le code en mode utilisateur et en mode noyau, l’espace de pile est limité et l’échec de la validation d’une page de pile entraîne une exception de dépassement de capacité de la pile. L’utilisation élevée de la pile est particulièrement problématique en mode noyau, car l’espace total de pile disponible n’est que de 12 Ko. Le code en mode noyau doit limiter de manière agressive l’utilisation de la pile.

L’outil Analyse du code émet l’avertissement C6262 si plus de 1 Ko d’espace de pile est utilisé localement dans une fonction. Si vous souhaitez examiner des fonctions potentiellement gourmandes en ressources, vous pouvez personnaliser ou réduire la limite de seuil de pile utilisée par C6262. Si vous réduisez la limite de seuil de pile, l’outil Analyse du code peut potentiellement trouver d’autres problèmes. Vous pouvez ensuite choisir de résoudre ces problèmes d’utilisation de la pile. Par exemple, vous pouvez abaisser le seuil à 400 octets pour voir si d’autres fonctions utilisent des ressources.

Pour personnaliser la limite de stacksize pour C6262

  1. Ouvrez le fichier projet Visual Studio (.vcxproj) de votre pilote en mode noyau (ou composant) dans le Bloc-notes ou un autre éditeur de texte.
  2. Ajoutez un nouvel <ÉlémentDefinitionGroup> pour le compilateur <ClCompile>.
  3. Ajoutez l’élément <PREfastAdditionalOptions> et définissez les octets> stacksize<. La valeur par défaut est stacksize1024.
     <ItemDefinitionGroup>
       <ClCompile>


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

    </ClCompile>
  </ItemDefinitionGroup>
  1. Enregistrez le fichier projet. Démarrez Visual Studio, chargez le projet de pilote mis à jour et exécutez l’analyse du code.

    Pour rétablir la valeur par défaut de 1 Ko, annulez les modifications que vous avez apportées au fichier projet ou modifiez la valeur de la taille de la pile en stacksize1024.

Avertissements de l'analyse du code pour les pilotes