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.
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.
- Escritura de controladores para diferentes versiones de Windows
- Compatibilidad con varias versiones del sistema operativo
Plataforma de destino
Hay 3 clasificaciones para la plataforma de destino de Windows, Controladores universales, Controladores de escritorio y Controladores de Windows.
Los Controladores universales:
- No deben usar coinstaladores.
- Deben cumplir con los principios de diseño de DCH. Consulte Principios de diseño y procedimientos recomendados de DCH.
- Deben superar
InfVerif /u
Los Controladores de escritorio:
- Deben cumplir todos los requisitos de los controladores universales.
- Deben cumplir los requisitos del Programa de compatibilidad de hardware con Windows (WHCP).
- Deben superar
InfVerif /h
. Para obtener más información, consulte InfVerif /h.
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.
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 | Sí | No |
Admite todas las variantes del sistema operativo Windows | No | No | Sí |
Compatibilidad con X64/ARM64 | Sí | Sí | Sí |
Se requiere el cumplimiento de APIVALIDATOR | No | No | Sí |
Compatibilidad con el sistema operativo de escritorio (versión del sistema operativo de destino) | Sí | Sí | Sí |
Compatibilidad con ejemplos de controladores de GitHub | Sí | Sí | 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.
- 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.
- 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.
- 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.
- 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
- Abra el proyecto o la solución del controlador en Visual Studio.
- En el menú Compilar, seleccione Compilar solución (Ctrl+Mayús+B).
- 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
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).
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 de la configuración del modelo de controlador para proyectos de controladores
Propiedades de firma para archivos de controlador individuales: firma de un controlador
Propiedades del preprocesador de manifiesto de contadores para proyectos de controladores
Propiedades del compilador de mensajes para proyectos de controladores
Propiedades del paquete de controladores
Propiedades de implementación para proyectos de paquetes de controladores
Propiedades de firma para paquetes de controladores: firma de un controlador
Propiedades del comprobador de controladores para proyectos de paquetes de controladores
Propiedades del comprobador de KMDF para proyectos de paquetes de controladores
Propiedades del comprobador de UMDF para proyectos de paquetes de controladores
Propiedades de Inf2Cat para proyectos de paquetes de controladores e Inf2Cat
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:
- Seleccione Herramientas ->Opciones.
- Seleccione la carpeta Proyecto y soluciones y seleccione Compilar y ejecutar.
- 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.
Temas relacionados
- Compilación en Visual Studio
- Compilación de controladores para diferentes versiones de Windows
- Uso del entorno de ejecución de Microsoft C con controladores en modo de usuario y aplicaciones de escritorio
- ProjectUpgradeTool
- MSBuild
- Creación de un controlador a partir de archivos de origen existentes
- WDK y el entorno de compilación de Visual Studio
- Firma de un controlador
- Implementación de un controlador en un equipo de prueba
- InfVerif /h