Compartir a través de


Conjunto de herramientas de la plataforma

El Kit de controladores de Windows (WDK) aprovecha la característica del conjunto de herramientas de la plataforma MSBuild para proporcionar herramientas y bibliotecas específicas para el desarrollo de controladores. La característica del conjunto de herramientas de la plataforma MSBuild es extensible. La versión específica del conjunto de herramientas de plataforma que desea usar se controla mediante una propiedad de MSBuild denominada PlatformToolset. Los proyectos pueden cambiar entre herramientas y bibliotecas estableciendo la propiedad PlatformToolset en el archivo de proyecto.

El Kit de controladores de Windows (WDK) 8.1 proporciona los siguientes conjuntos de herramientas de plataforma para el desarrollo de controladores.

PlatformToolset (WDK 8.1) Uso
WindowsKernelModeDriver8.1 Para los componentes y controladores en modo kernel.
WindowsUserModeDriver8.1 Para los componentes y controladores en modo de usuario.
WindowsApplicationForDrivers8.1 Para cualquier tipo de aplicación. Este conjunto de herramientas de plataforma proporciona compatibilidad con las opciones de compilación que se usan en el Kit de controladores de Windows (WDK) para Windows 7 (WDK 7.1) y también usa la configuración predeterminada que es común para el desarrollo de aplicaciones en modo de usuario que interactúan con controladores. Puede usar esta configuración si va a migrar o convertir un proyecto compilado con WDK 7.
Visual Studio 2013 (v120) Se usa para cualquier tipo de aplicación de Windows (valor predeterminado).

El Kit de controladores de Windows (WDK) 8 proporcionó los siguientes conjuntos de herramientas de plataforma para el desarrollo de controladores. Esta información solo se proporciona como referencia.

PlatformToolset (WDK 8) Uso
WindowsKernelModeDriver8.0 Para los componentes y controladores en modo kernel.
WindowsUserModeDriver8.0 Para los componentes y controladores en modo de usuario.
WindowsApplicationForDrivers8.0 Para cualquier tipo de aplicación. Este conjunto de herramientas de plataforma proporciona compatibilidad con las opciones de compilación usadas en WDK para Windows 7 (WDK 7.1). Puede usar esta configuración si va a migrar o convertir un proyecto compilado con WDK 7.
Visual Studio 2012 (v110) Se usa para cualquier tipo de aplicación de Windows (valor predeterminado).

Nota Si crea un controlador a partir de una de las plantillas de controlador de Windows disponibles en Visual Studio, la propiedad PlatformToolset se establece automáticamente. También puede seleccionar PlatformToolset mediante la página de propiedades del proyecto de controlador en Visual Studio. Establecimiento del conjunto de herramientas de plataforma en Visual Studio

  1. Abra las páginas de propiedades del proyecto de controlador. Seleccione y mantenga presionado (o haga clic con el botón derecho) en el proyecto de controlador en Explorador de soluciones y seleccione Propiedades.
  2. En las páginas de propiedades del proyecto de controlador, seleccione Propiedades de configuración y, a continuación, seleccione General.
  3. Seleccione la propiedad Conjunto de herramientas de plataforma del proyecto en la lista desplegable.

Ejemplo: establecimiento de la propiedad PlatformToolset en un archivo de proyecto de Visual Studio (.vcxproj)

En el ejemplo siguiente se muestra cómo se establece la propiedad PlatformToolset en el archivo de proyecto.

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"
      Label="Configuration">
  <ConfigurationType>Driver</ConfigurationType>
  <DriverType>KMDF</DriverType>
  <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
</PropertyGroup>

La propiedad ConfigurationType controla la extensión de destino y el tipo de salida del binario que se está compilando. Algunos de los valores posibles para esta propiedad son Application, DynamicLibrary, StaticLibrary y Utility.

El WDK introduce un nuevo valor para esta propiedad denominada Driver para compilar un controlador en modo kernel. Si establece esta propiedad en Driver, MSBuild generará un archivo de controlador con .sys como extensión. En el ejemplo, la propiedad PlatformToolset se establece en WindowsKernelModeDriver8.1 para compilar un controlador en modo kernel. WindowsKernelModeDriver8.1 es el único conjunto de herramientas de la plataforma WDK que requiere DriverConfigurationType. En este ejemplo, DriverType se establece en KMDF.

Acerca de la propiedad PlatformToolset para controladores

PlatformToolset es un conjunto de hojas de propiedades, destinos, herramientas y tareas que funcionan conjuntamente para ampliar y modificar una plataforma con el fin de crear controladores o componentes en modo kernel para esa plataforma concreta. Para controladores y componentes y aplicaciones relacionados, la propiedad PlatformToolset debe establecerse en WindowsKernelModeDriver8.1, WindowsUserModeDriver8.1 o WindowsApplicationForDrivers8.1 en el archivo del proyecto. Estos conjuntos de herramientas de plataforma están diseñados para ampliar el compilador y enlazador de cadenas de herramientas de Visual Studio C\C++ existentes con otras herramientas de compilación específicas de WDK y tener como destino los encabezados y bibliotecas de WDK. El conjunto de herramientas WindowsApplicationForDrivers8.1 proporciona compatibilidad con la configuración de opciones de compilación que estaban disponibles en WDK para Windows 7 (WDK 7.1) y también con la configuración predeterminada que son comunes para el desarrollo de aplicaciones en modo de usuario que interactúan con controladores.

El conjunto de herramientas de plataforma tiene la configuración de nivel de plataforma predeterminada y los destinos para compilar cualquier proyecto de controlador. Los modificadores predeterminados se usan para herramientas de compilación como el compilador o enlazador, información del sistema, como las rutas de acceso INCLUDE o LIBRARY del WDK, y la configuración de características, como varias propiedades que se van a establecer al usar cadenas Unicode o ANSI para compilar un proyecto de controlador. Si está desarrollando una aplicación de Windows para el escritorio, no use el conjunto de herramientas de la plataforma WindowsKernelModeDriver8.1, WindowsUserModeDriver8.1 o WindowsApplicationForDrivers8.1 . En su lugar, use el conjunto de herramientas de plataforma de Visual Studio 2013 (v120).

De forma predeterminada, la propiedad PlatformToolset es Visual Studio 2013 (v120) para proyectos y proyectos de C++ en modo de usuario win32 recién creados que se convirtieron en Visual Studio 2013. En ambos casos, la propiedad PlatformToolset no se escribe en el archivo del proyecto.

Al seleccionar uno de los conjuntos de herramientas de la plataforma para controladores, se establecen las propiedades siguientes.

  • ExecutablePath y NativeExecutablePath (PATH)
  • IncludePath (INCLUDE)
  • ReferencePath (LIBPATH)
  • LibraryPath (LIB)
  • SourcePath
  • ExcludedPath

Nota Cuando UseEnv no está establecido en TRUE, PATH, LIB, INCLUDE, LIBPATH se establecerá desde los valores de propiedad correspondientes del conjunto de herramientas de la plataforma. Cuando UseEnv se establece en TRUE, como en el sistema de compilación anterior, los valores de las variables de entorno para PATH, INCLUDE, LIB y LIBPATH se usarán en su lugar.

Donde WDK instala archivos que habilitan los conjuntos de herramientas de plataforma específicos del controlador

En la tabla siguiente se resumen los lugares donde WDK instala los archivos para habilitar los conjuntos de herramientas de plataforma para el desarrollo de controladores.

Variable de ruta de acceso Descripción

$(VCTargetsPath)

De forma predeterminada, $(VCTargetsPath) se define en el Registro como $(MSBuildExtensionsPath)<em><FOLDER><MSBUILDSYNTAXVERSION>)

El número de versión se incluye en caso de que se use un nuevo proceso de compilación para la misma plataforma, que tiene una sintaxis nueva y requiere un MSBuild posterior.

La <carpeta FOLDER> es la carpeta Microsoft.Cpp - $(MSBuildExtensionsPath)\Microsoft.Cpp\4.0\v120.

Esto se denomina versión de sintaxis en lugar de versión de herramientas. Es la versión del ensamblado del primer Microsoft.Build.Engine que admite toda la sintaxis necesaria. Microsoft.Cpp indica la única carpeta donde Visual Studio buscará plataformas.

$(VCTargetsPath)\Platforms$(Platform)\ImportAfter.props

Carpeta opcional que normalmente no contiene archivos. Puede personalizar la plataforma guardando los archivos de formato de MSBuild en esta carpeta. Se importarán en la parte inferior del archivo de configuración de la plataforma, como se indica en la carpeta en la que se encuentran actualmente. El orden en el que se importan los archivos desde esta ubicación no está definido. Los archivos que crea MSBuild son $(VCTargetsPath)\Platforms$(Platform)\ImportAfter\Microsoft.Cpp. <Plataforma>. WindowsKernelModeDriver8.1.props y Microsoft.Cpp. <Plataforma>. WindowsUserModeDriver8.1.props, que importa varios archivos de propiedades específicos de WDK.

$(VCTargetsPath)\Platforms$(Platform)\PlatformToolsets$(PlatformToolset)</p>

Para el WDK:

$(PlatformToolset) debe establecerse en WindowsKernelModeDriver8.1 para compilar controladores de modo kernel, establecido en WindowsUserModeDriver8.1 para compilar controladores de modo de usuario y establecerlo en WindowsApplicationForDrivers8.1 para la compatibilidad con las opciones de compilación usadas en Windows 7 WDK (WDK 7).

PlatformToolset Directory

Por ejemplo, C:\Archivos de programa\MSBuild\Microsoft.Cpp\v4.0\v120\Platforms\Win32\PlatformToolsets\WindowsKernelModeDriver8.1.

El directorio PlatformToolsets permite agregar otros tipos de archivos más adelante, en su propia subcarpeta.

Microsoft.Cpp.$(Platform).$(PlatformToolset).props

Archivo props del conjunto de herramientas de plataforma

Importa archivos de propiedades para compilar un controlador. También importa el archivo de propiedades v120.

Microsoft.Cpp.$(Platform).$(PlatformToolset).targets

Archivo de destinos del conjunto de herramientas de plataforma

Importa los archivos de destino para compilar un controlador. Estos archivos contienen <etiquetas UsingTask> para extraer las tareas de WDK. Esta característica también importa destinos v120.

$(WDKContentRoot)\build.props

Todos los archivos de propiedades específicos del controlador. Estos archivos contienen la configuración predeterminada para compilar un controlador.

$(WDKContentRoot)\build*.targets

Todos los archivos de destinos específicos del controlador. Este archivo identifica los destinos para compilar un controlador.