平台工具集
Windows 驱动程序工具包 (WDK) 利用 MSBuild 平台工具集功能提供特定于驱动程序开发的工具和库。 MSBuild 平台工具集功能是可扩展的。 要使用的平台工具集的特定版本由名为 PlatformToolset 的 MSBuild 属性控制。 项目可以通过在项目文件中设置 PlatformToolset 属性,在工具和库之间切换。
Windows 驱动程序工具包 (WDK) 8.1 提供以下用于驱动程序开发的平台工具集。
PlatformToolset (WDK 8.1) | 用途 |
---|---|
WindowsKernelModeDriver8.1 | 对于内核模式驱动程序和组件。 |
WindowsUserModeDriver8.1 | 对于用户模式驱动程序和组件。 |
WindowsApplicationForDrivers8.1 | 对于任何类型的应用程序。 此平台工具集提供与适用于 Windows 7 (WDK 7.1) 的 Windows 驱动程序工具包 (WDK) 中使用的生成选项的兼容性,并且还使用与驱动程序交互的用户模式应用程序开发常用的默认设置。 如果要迁移或转换使用 WDK 7 生成的项目,则可以使用此设置。 |
Visual Studio 2013 (v120) | 用于任何类型的 Windows 应用程序 (默认) 。 |
Windows 驱动程序工具包 (WDK) 8 提供了以下用于驱动程序开发的平台工具集。 此信息仅供参考。
PlatformToolset (WDK 8) | 用途 |
---|---|
WindowsKernelModeDriver8.0 | 对于内核模式驱动程序和组件。 |
WindowsUserModeDriver8.0 | 对于用户模式驱动程序和组件。 |
WindowsApplicationForDrivers8.0 | 对于任何类型的应用程序。 此平台工具集提供与适用于 Windows 7 的 WDK (WDK 7.1) 中使用的生成选项的兼容性。 如果要迁移或转换使用 WDK 7 生成的项目,则可以使用此设置。 |
Visual Studio 2012 (v110) | 用于任何类型的 Windows 应用程序 (默认) 。 |
注意 如果从 Visual Studio 中可用的 Windows 驱动程序模板之一创建驱动程序,则会为你设置 PlatformToolset 属性。 还可以使用 Visual Studio 中的驱动程序项目属性页选择 PlatformToolset 。 在 Visual Studio 中设置平台工具集
- 打开驱动程序项目的属性页。 在“解决方案资源管理器”中,选择并按住(或右键单击)驱动程序项目,然后选择“属性” 。
- 在驱动程序项目的属性页中,选择“ 配置属性” ,然后选择“ 常规”。
- 从下拉列表中选择项目的 “平台工具集 ”属性。
示例 - 在 Visual Studio 项目文件中设置 PlatformToolset 属性 (.vcxproj)
以下示例演示如何在项目文件中设置 PlatformToolset 属性。
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"
Label="Configuration">
<ConfigurationType>Driver</ConfigurationType>
<DriverType>KMDF</DriverType>
<PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
</PropertyGroup>
ConfigurationType 属性控制正在生成的二进制文件的目标扩展和输出类型。 此属性的一些可能值为 Application、 DynamicLibrary、 StaticLibrary 和 Utility。
WDK 为此属性引入了一个名为 Driver 的新值,用于生成内核模式驱动程序。 如果将此属性设置为 Driver,则 MSBuild 将生成一个驱动程序文件,其中.sys作为其扩展名。 在本示例中, PlatformToolset 属性设置为 WindowsKernelModeDriver8.1 以生成内核模式驱动程序。 WindowsKernelModeDriver8.1 是唯一需要 DriverConfigurationType 的 WDK 平台工具集。 在此示例中, DriverType 设置为 KMDF。
关于驱动程序的 PlatformToolset 属性
PlatformToolset 是一组属性表、目标、工具和任务,这些属性表、目标、工具和任务协同工作以扩展和修改平台,以便为该特定平台生成驱动程序或内核模式组件。 对于驱动程序以及相关组件和应用程序, PlatformToolset 属性应设置为项目文件中 的 WindowsKernelModeDriver8.1、 WindowsUserModeDriver8.1 或 WindowsApplicationForDrivers8.1 。 这些平台工具集旨在将现有的 Visual Studio C\C++ 工具链编译器和链接器与其他特定于 WDK 的生成工具一起扩展,并面向 WDK 标头和库。 WindowsApplicationForDrivers8.1 工具集提供与 WDK for Windows 7 (WDK 7.1) 中可用的生成选项设置的兼容性,以及用于开发与驱动程序交互的用户模式应用程序时常用的默认设置。
平台工具集具有用于生成任何驱动程序项目的默认平台级设置和目标。 对生成工具(如编译器或链接器)使用默认开关、WDK 的 INCLUDE 或 LIBRARY 路径等系统信息,以及使用 Unicode 或 ANSI 字符串生成驱动程序项目时要设置的各种属性等功能设置。 如果要为桌面开发 Windows 应用程序,请不要使用 WindowsKernelModeDriver8.1、 WindowsUserModeDriver8.1 或 WindowsApplicationForDrivers8.1 平台工具集。 请改用 Visual Studio 2013 (v120) 平台工具集。
默认情况下,对于新创建的 Win32 用户模式 C++ 项目和已转换为 Visual Studio 2013 的项目,PlatformToolset 属性Visual Studio 2013 (v120 ) 。 在这两种情况下, PlatformToolset 属性都不会写入项目文件。
为驱动程序选择其中一个平台工具集时,将设置以下属性。
- ExecutablePath 和 NativeExecutablePath (PATH)
- IncludePath (INCLUDE)
- ReferencePath (LIBPATH)
- LibraryPath (LIB)
- SourcePath
- ExcludedPath
注意 当 UseEnv 未设置为 TRUE 时,将从平台工具集中的相应属性值设置 PATH、LIB、INCLUDE、LIBPATH。 当 UseEnv 设置为 TRUE 时(与在旧生成系统中一样),将改用 PATH、INCLUDE、LIB 和 LIBPATH 环境变量中的值。
WDK 安装启用特定于驱动程序的平台工具集的文件的位置
下表汇总了 WDK 安装文件以启用用于驱动程序开发的平台工具集的位置。
路径变量 | 说明 |
---|---|
$ (VCTargetsPath) |
默认情况下,$ (VCTargetsPath) 在注册表中定义为 $ (MSBuildExtensionsPath) <em><FOLDER<>MSBUILDSYNTAXVERSION) > 如果同一平台使用新的生成过程,则包含版本号,该平台具有新语法,并且需要更高的 MSBuild。 FOLDER<> 是 Microsoft.Cpp 文件夹 - $ (MSBuildExtensionsPath) \Microsoft.Cpp\4.0\v120。 这称为 语法版本 ,而不是 工具版本。 它是支持所有必要语法的第一个 Microsoft.Build.Engine 的程序集版本。 Microsoft.Cpp 指示 Visual Studio 将查找平台的唯一文件夹。 |
$ (VCTargetsPath) \Platforms$ (Platform) \ImportAfter.props |
通常不包含文件的可选文件夹。 可以通过在此文件夹中保存 MSBuild 格式化文件来自定义平台。 它们将导入到平台设置文件的底部,如它们当前位于的文件夹所示。 未定义从此位置导入文件的顺序。 MSBuild 创建的文件为 $ (VCTargetsPath) \Platforms$ (Platform) \ImportAfter\Microsoft.Cpp。<平台>。WindowsKernelModeDriver8.1.props 和 Microsoft.Cpp。<平台>。WindowsUserModeDriver8.1.props,用于导入多个特定于 WDK 的属性文件。 |
$ (VCTargetsPath) \Platforms$ (Platform) \PlatformToolsets$ (PlatformToolset) </p> |
对于 WDK: $ (PlatformToolset) 必须设置为 WindowsKernelModeDriver8.1 才能生成内核模式驱动程序,设置为 WindowsUserModeDriver8.1 才能生成用户模式驱动程序,设置为 WindowsApplicationForDrivers8.1,以便与 Windows 7 WDK (WDK 7) 中使用的生成选项兼容。 PlatformToolset 目录 例如,C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\v120\Platforms\Win32\PlatformToolsets\WindowsKernelModeDriver8.1。 PlatformToolsets 目录允许稍后在其自己的子文件夹中添加其他类型的文件。 |
Microsoft.Cpp.$ (Platform) .$ (PlatformToolset) .props |
平台工具集属性文件 导入属性文件以生成驱动程序。 还导入 v120 属性文件。 |
Microsoft.Cpp.$ (Platform) .$ (PlatformToolset) .targets |
平台工具集目标文件 导入目标文件以生成驱动程序。 这些文件包含 <用于拉取 WDK 任务的 UsingTask> 标记。 此功能还导入 v120 目标。 |
$ (WDKContentRoot) \build.props |
所有特定于驱动程序的属性文件。 这些文件包含用于生成驱动程序的默认设置。 |
$ (WDKContentRoot) \build*.targets |
所有特定于驱动程序的目标文件。 此文件标识生成驱动程序的目标。 |