Ejecución de análisis de código para controladores

El análisis de código para controladores proporciona información sobre posibles defectos en el código fuente. Puede ejecutar el análisis de código manualmente y también puede ejecutar el análisis de código automáticamente con cada compilación.

En este tema:

Ejecutar análisis de código

Para ejecutar el análisis de código en el código fuente del controlador manualmente

  1. En Visual Studio, seleccione el archivo o solución del proyecto de controlador y seleccione la configuración del proyecto y la plataforma que se van a analizar.
  2. En el menú Analizar o compilar , haga clic en Ejecutar análisis de código en la solución.

Para ejecutar el análisis de código en el código fuente del controlador automáticamente con cada compilación

  1. En Visual Studio, haga clic con el botón derecho en el proyecto o solución del controlador en Explorador de soluciones y haga clic en Propiedades.
  2. En el cuadro de diálogo propiedades del proyecto, haga clic en Análisis de código.
  3. En la página Análisis de código para propiedades de C/C++, seleccione la configuración del proyecto y la plataforma que quiera analizar (por ejemplo, Windows 8 y Win32).
  4. Seleccione Habilitar análisis de código para C/C++ en Compilación.
  5. En Conjunto de reglas, seleccione Reglas recomendadas del controlador de Microsoft. Este es el conjunto de reglas predeterminado para los controladores.
  6. En el menú Compilar , haga clic en Compilar solución.

Visualización de los resultados del análisis de código

Si se encuentran posibles defectos en el código fuente, la ventana Resultados del análisis de código muestra el número de advertencia de análisis de código y el número de línea en el archivo de origen donde se produce el defecto.

Para ver defectos

  1. En la ventana Resultados del análisis de código, haga clic en el número de línea y se muestra una descripción del defecto en la ventana Resultados de análisis de código.

    La ventana Código muestra el código fuente e indica dónde se produce el defecto.

  2. Para obtener más información sobre una advertencia determinada, haga clic en la advertencia en la ventana Resultados del análisis de código .

Para ver el archivo de registro de análisis de código asociado a una compilación

  1. Vaya al directorio de la configuración y la plataforma de compilación (por ejemplo, \\Windows7Release\\x64).
  2. Si usa las reglas recomendadas, el archivo de registro se denomina vc.\*codeanalysis.xml. Si va a crear un controlador para Windows Server 2012, este archivo se usa para crear el registro de comprobación del controlador.

Suprimir el informe de defectos

En algunos casos, es posible que desee suprimir el informe de un mensaje de advertencia determinado; por ejemplo, si la advertencia es principalmente informativa y conoce la causa del error.

Para suprimir los mensajes de advertencia

  1. Para quitar una instancia de un defecto notificado, seleccione el número de línea y la advertencia en la ventana Resultados del análisis de código.

  2. En la descripción expandida de la advertencia, haga clic en Acciones>Suprimir mensaje>en el origen.

    Una directiva de advertencia pragma con el especificador suppress suprime la advertencia solo para la línea de código que sigue inmediatamente a la instrucción de advertencia #pragma.

    #pragma warning(suppress: 6014)
    

Cambio de los límites de uso de la pila para la advertencia C6262 para controladores en modo kernel

En el modo de usuario y el código en modo kernel, el espacio de pila está limitado y el error en confirmar una página de pila provoca una excepción de desbordamiento de pila. El uso elevado de la pila es especialmente un problema en el modo kernel porque el espacio total de pila disponible es de solo 12 KB. El código en modo kernel debe limitar agresivamente el uso de la pila.

La herramienta Análisis de código emite la advertencia C6262 si se usan más de 1 KB de espacio de pila localmente en una función. Si desea investigar las funciones que podrían consumir muchos recursos, puede personalizar o reducir el límite de umbral de pila usado por C6262. Si reduce el límite de umbral de pila, la herramienta Análisis de código puede encontrar más problemas. Después, puede optar por solucionar esos problemas de uso de la pila. Por ejemplo, podría reducir el umbral a 400 bytes para ver si otras funciones usan recursos.

Para personalizar el límite de stacksize para C6262

  1. Abra el archivo de proyecto de Visual Studio (.vcxproj) para el controlador en modo kernel (o componente) en el Bloc de notas u otro editor de texto.
  2. Agregue un nuevo <ItemDefinitionGroup> para el compilador <ClCompile>.
  3. Agregue el <elemento PREfastAdditionalOptions> y establezca los bytes> stacksize<. El valor predeterminado es stacksize1024.
     <ItemDefinitionGroup>
       <ClCompile>


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

    </ClCompile>
  </ItemDefinitionGroup>
  1. Guarde el archivo de proyecto. Inicie Visual Studio, cargue el proyecto de controlador actualizado y ejecute el análisis de código.

    Para revertir al valor predeterminado de 1 KB, deshaga los cambios realizados en el archivo del proyecto o cambie el valor de tamaño de pila a stacksize1024.

Advertencias de análisis de código para controladores