Compartir vía


Uso de Visual Studio o MSBuild para compilar un controlador

En este tema se proporcionan instrucciones sobre cómo compilar un controlador mediante el entorno de desarrollo de Visual Studio o desde la línea de comandos utilizando la ventana del símbolo del sistema de Visual Studio y Microsoft Build Engine (MSBuild).

Para desarrollar controladores para Windows, deberá instalar el SDK y WDK en Visual Studio y configurar las opciones del controlador. Asegúrese de que las versiones del SDK y WDK del equipo coincidan.

Compilación de un controlador con Visual Studio

Un controlador se compila del mismo modo que cualquier proyecto o solución en Visual Studio. Cuando se crea un nuevo proyecto de controlador utilizando una plantilla de controlador, la plantilla define una configuración de proyecto predeterminada (activa) y una configuración de compilación de la solución predeterminada (activa).

Para obtener información sobre cómo administrar y editar configuraciones de compilación, consulte Compilación en Visual Studio.

Configuración del controlador KMDF

Para configurar los valores del controlador en VS 2022, haga clic con el botón derecho en el proyecto de controlador, seleccione propiedades y vaya a Propiedades ->Propiedades de configuración ->Configuración del controlador.

Configuración del controlador KMDF de Visual Studio.

Versión del sistema operativo de destino

La versión del sistema operativo de destino hace referencia a la versión de Windows para la que se está desarrollando el controlador. Establezca la versión del sistema operativo de destino en la versión más baja que admita el controlador. Por ejemplo, un controlador para Windows 10 debe admitir Windows 10 y todas las versiones posteriores.

Siga las instrucciones de estos temas para asegurarse de que el paquete de controladores está escrito correctamente para admitir varias versiones de Windows.

Plataforma de destino

Hay 3 clasificaciones para la plataforma de destino de Windows, Controladores universales, Controladores de escritorio y Controladores de Windows.

  1. Los Controladores universales:

  2. Los Controladores de escritorio:

    Los controladores que cumplen los criterios de controladores de escritorio están certificados con el logotipo de Windows y se pueden agregar al programa Windows Update.

  3. Los Controladores de Windows:

    • Deben cumplir todos los requisitos de los controladores de escritorio.
    • Deben ser totalmente compatibles con los requisitos de aislamiento del paquete de controladores.
    • Deben superar InfVerif /w
    • Los controladores de Windows son la selección de plataforma de destino más restrictiva y cumplen todos los requisitos de fiabilidad y capacidad de servicio.

En la tabla siguiente se resumen las clasificaciones de controladores.

Característica Controladores universales Controladores de escritorio Controladores Windows
Conmutador infverif InfVerif /u InfVerif /h InfVerif /w
Requisito actual de WHCP No No
Admite todas las variantes del sistema operativo Windows No No
Compatibilidad con X64/ARM64
Se requiere el cumplimiento de APIVALIDATOR No No
Compatibilidad con el sistema operativo de escritorio (versión del sistema operativo de destino)
Compatibilidad con ejemplos de controladores de GitHub No

Configuración de controladores

Al compilar controladores, asegúrese de que la arquitectura de la plataforma y NT_TARGET_VERSION estén correctamente establecidos en Visual Studio con WDK o EWDK. La configuración predeterminada de compilación de la solución para el desarrollo es Depurar y Win64.

  1. Seleccione y mantenga pulsada (o haga clic con el botón derecho) la solución en el Explorador de soluciones y seleccione Administrador de configuración.
  2. En Administrador de configuración, seleccione la Configuración de la solución activa (por ejemplo, Depuración o Versión) y la Plataforma de soluciones activas (por ejemplo, Win64), que corresponden al tipo de compilación que le interesa.
  3. Seleccione y mantenga pulsado (o haga clic con el botón derecho) el proyecto y seleccione Propiedades. Vaya a Configuración de controlador ->General y establezca la Versión del SO de destino y la Plataforma de destino.
  4. Configure las propiedades del proyecto para el controlador o el paquete de controladores. Puede establecer propiedades para la implementación, la firma de controladores u otras tareas. Para obtener más información, consulte Configuración de las propiedades del proyecto para el controlador y el paquete de controladores.

Para compilar un controlador

  1. Abra el proyecto o la solución del controlador en Visual Studio.
  2. En el menú Compilar, seleccione Compilar solución (Ctrl+Mayús+B).
  3. Vea los errores en tiempo de compilación en la ventana de salida de compilación.

Compilación de un controlador mediante la línea de comandos (MSBuild)

Puede compilar un controlador desde la línea de comandos mediante la ventana del símbolo del sistema de Visual Studio y Microsoft Build Engine (MSBuild).

Para compilar un controlador mediante la ventana del símbolo del sistema de Visual Studio

  1. Abra una ventana de símbolo del sistema para desarrolladores para VS2022.

    Desde esta ventana puede usar MSBuild.exe para compilar cualquier proyecto de Visual Studio especificando el archivo de proyecto (.vcxproj) o soluciones (.sln).

  2. Vaya al directorio del proyecto y escriba el comando de MSBuild para el destino.

    Por ejemplo, para realizar una compilación limpia de un proyecto de controlador de Visual Studio denominado MyDriver.vcxproj mediante la plataforma y configuración predeterminadas, vaya al directorio del proyecto y escriba el siguiente comando de MSBuild:

    msbuild /t:clean /t:build .\MyDriver.vcxproj
    

    Para especificar una configuración y una plataforma específicas, use:

    msbuild /t:clean /t:build ProjectFile /p:Configuration=<Debug|Release> /p:Platform=architecture /p:TargetPlatformVersion=a.b.c.d /p:TargetVersion=OS    
    

    El siguiente comando compila un controlador para la configuración de "Depuración", la plataforma "Win32" y para Windows 10.

    msbuild /t:clean /t:build .\MyDriver.vcxproj /p:Configuration="Debug" /p:Platform=Win32 /p:TargetVersion="Windows10" /p:TargetPlatformVersion="10.0.10010.0"
    

    La configuración TargetPlatformVersion es opcional y especifica la versión del kit con la que se va a compilar. El valor predeterminado es la versión del kit más reciente.

Configuración de las propiedades del proyecto para el controlador y el paquete de controladores

Use las páginas de propiedades para configurar y establecer opciones para el controlador y el paquete de controladores. Puede optar por configurar el controlador para que se firme automáticamente al compilar la solución o implementarlo automáticamente en un equipo de prueba remota.

Puede establecer propiedades para un controlador individual o para un paquete de controladores completo. En la sección siguiente se muestran algunas de las propiedades disponibles que puede configurar específicamente para controladores y paquetes de controladores.

Propiedades del proyecto de controlador

Propiedades del paquete de controladores

Integración del proyecto de la herramienta de línea de comandos WDK

WDK proporciona una serie de herramientas de línea de comandos, como Stampinf y Preprocesador de WPP (seguimiento de WPP), que normalmente se incluyen en el proceso de compilación. Estas herramientas no se distribuyen con Visual Studio. Para combinar estas herramientas con el entorno de compilación de Visual Studio, se encapsulan como tareas de WDK para MSBuild. Si usa una de las plantillas de controlador o tiene un controlador existente que ha convertido, es posible que estas páginas de propiedades ya existan para el proyecto. Si no es así, las páginas de propiedades se agregan automáticamente al proyecto a medida que agrega los tipos de archivo relacionados al proyecto o solución (por ejemplo, archivos .mc o .man para el compilador de mensajes). Para obtener más información, consulte WDK y el entorno de compilación de Visual Studio.

Sugerencia para la solución de problemas al compilar un controlador

Para ayudar a solucionar problemas de compilación, puede aumentar el nivel de detalle de la salida de compilación en Visual Studio:

  1. Seleccione Herramientas ->Opciones.
  2. Seleccione la carpeta Proyecto y soluciones y seleccione Compilar y ejecutar.
  3. Cambie las opciones de detalle de la salida de compilación del proyecto de MSBuild y el detalle del archivo de registro de compilación del proyecto de MSBuild. De forma predeterminada, se establecen en Mínimo.

Actualización de controladores de Windows 8

Puede convertir proyectos y soluciones creados con WDK 8 o con el Kit para controladores de Windows (WDK) 8.1 para trabajar con el Kit para controladores de Windows (WDK) 10 y Visual Studio. Antes de abrir los proyectos o soluciones, ejecute ProjectUpgradeTool. ProjectUpgradeTool convierte los proyectos y soluciones para que se puedan compilar mediante WDK 10.

A partir del Kit para controladores de Windows (WDK) 8, MSBuild reemplazó a la Utilidad de compilación de Windows (Build.exe). WDK usa el mismo compilador y herramientas de compilación que se usan para compilar proyectos de Visual Studio. Los proyectos de controlador creados con versiones anteriores de WDK deben convertirse para que funcionen en el entorno de Visual Studio. Puede ejecutar una utilidad de conversión desde la línea de comandos o puede convertir un controlador existente creando un nuevo proyecto de Visual Studio a partir de orígenes existentes. Para obtener más información, consulte Creación de un controlador a partir de archivos de origen existentes y WDK y el entorno de compilación de Visual Studio.