使用 WDK 构建驱动程序

本主题介绍了如何使用 Windows 驱动程序工具包 (WDK) 构建驱动程序。 WDK 10 与 Microsoft Visual Studio 完全集成。你可以使用 Visual Studio 开发环境生成驱动程序,也可以使用 Microsoft Build Engine (MSBuild) 直接从命令行生成驱动程序。

你可以使用任一版本的 Microsoft Visual Studio 2015(包括 Microsoft Visual Studio Community 2015)来生成适用于以下项的驱动程序:

  • Windows 10
  • Windows 8.1
  • Windows 7

要点  从 Windows 驱动程序工具包 (WDK) 8 开始,MSBuild 就已经取代了在早期版本的 WDK 中使用的 Windows 构建实用工具 (Build.exe)。现在,WDK 可使用与你用于构建 Visual Studio 项目相同的编译器和构建工具。使用早期版本的 WDK 构建的驱动程序项目必须进行转换才能在 Visual Studio 环境中工作。你可以从命令行运行转换实用工具,也可以通过从现有的源创建新的 Visual Studio 项目来转换现有驱动程序。有关详细信息,请参阅从现有源文件创建驱动程序WDK 和 Visual Studio 构建环境

 

使用 Visual Studio 构建驱动程序

构建驱动程序的方法与在 Visual Studio 中构建任何项目或解决方案的方法相同。当使用 Windows 驱动程序模板创建新的驱动程序项目时,该模板定义默认(活动)的项目配置以及默认(活动)的解决方案生成配置。

注意  你可以将使用 WDK 8 或 Windows 驱动程序工具包 (WDK) 8.1 所创建的项目和解决方案转换为适用于 Windows 驱动程序工具包 (WDK) 10 和 Visual Studio 2015。打开项目或解决方案前,请先运行 ProjectUpgradeTool。ProjectUpgradeTool 将转换项目和解决方案,以便可以使用 WDK 10 构建它们。

 

有关管理和编辑构建配置的信息,请参阅 Building in Visual Studio

默认的解决方案构建配置为“调试”和“Win32”****。 在 Windows 8 之前的 WDK 版本中,此构建配置对应于使用“x86 已检查版本环境”构建驱动程序。

Ff554644.wedge(zh-cn,VS.85).gif选择配置并构建驱动程序

  1. 确保安装在你的计算机上的 SDK 和 WDK 的版本相同。
  2. 在 Visual Studio 中打开驱动程序项目或解决方案。
  3. 在“解决方案资源管理器”中右键单击解决方案,并选择“配置管理器”****。
  4. 从“配置管理器”中,选择与你感兴趣的构建类型相对应的活动解决方案配置(例如,“调试”或“发布”)以及活动解决方案平台(例如,“Win32”)。
  5. 选择要构建驱动程序的目标操作系统。导航到“驱动程序”>“常规”中的项目属性,然后设置 TargetVersion 属性。
  6. 为驱动程序或驱动程序包配置项目属性。 可以为部署、驱动程序签署或其他任务设置属性。有关详细信息,请参阅为驱动程序和驱动程序包配置项目属性。
  7. 从“构建”菜单中,单击“构建解决方案”**** (Ctrl+Shift+B)。

使用命令行构建驱动程序 (MSBuild)

你可以使用“Visual Studio 命令提示符”窗口和 Microsoft Build Engine (MSBuild) 来从命令行构建驱动程序。

Ff554644.wedge(zh-cn,VS.85).gif使用“Visual Studio 命令提示符”窗口构建驱动程序

  1. 打开“适用于 VS2015 的开发人员命令提示符”窗口。

    在此窗口中,你可以借助 MSBuild.exe,通过指定项目 (.VcxProj) 或解决方案 (.Sln) 文件来构建任何 Visual Studio 项目。

  2. 导航到项目目录并为你的目标输入 MSbuild 命令。

    例如,若要使用默认的平台和配置生成名为 MyDriver.vcxproj 的全新的 Visual Studio 驱动程序项目,请导航到项目目录并输入以下 MSBuild 命令:

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

    语法 - 若要指定特定的配置和平台,请使用以下命令语法:

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

    例如,以下命令将为“调试”配置、“Win32”平台和 Windows 10 生成一个通用 Windows 驱动程序。

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

    “TargetPlatformVersion”****设置为可选项,并且允许你指定用于生成的工具包版本。默认值为使用最新的工具包。

为驱动程序和驱动程序包配置项目属性

使用属性页,可以为驱动程序和驱动程序包配置和设置选项。可以选择配置驱动程序以便在构建解决方案时自动签署驱动程序,或者自动部署到远程测试计算机。

WDK 提供很多命令行工具,如构建过程中通常包含的 StampinfWPP 预处理器(WPP 跟踪)。这些工具不随 Visual Studio 一起分发。 为了将这些工具与 Visual Studio 构建环境结合使用,将这些工具作为 MSBuild 的 WDK 任务进行包装。 如果使用其中一个驱动程序模板或者转换现有的驱动程序,那么对于你的项目来说,这些属性页可能已存在。如果不是这样,那么当你向项目或解决方案中添加相关文件类型时,属性页会自动添加到你的项目(例如,消息编译器的 .mc 或 .man 文件)。有关详细信息,请参阅 WDK 和 Visual Studio 构建环境

可以为单个驱动程序或整个驱动程序包设置属性。下表显示了可以为驱动程序和驱动程序包专门配置的一些可用属性。

驱动程序项目属性 驱动程序包属性

为个别驱动程序文件签署属性(请参阅签署驱动程序

为驱动程序包签署属性(请参阅签署驱动程序

驱动程序项目的计数器清单预处理器属性(对于 CTRPP

驱动程序包项目的部署属性(请参阅将驱动程序部署到测试计算机

驱动程序项目的驱动程序模型设置属性

驱动程序包项目的驱动程序验证程序属性

驱动程序项目的消息编译器属性

驱动程序包项目的 KMDF 验证程序属性

驱动程序项目的 Stampinf 属性

驱动程序包项目的 UMDF 验证程序属性

WPP 预处理器(WPP 跟踪)

驱动程序包项目的 Inf2Cat 属性(请参阅 Inf2Cat 工具)

 

构建驱动程序的疑难解答提示

以下提示可在你使用 WDK 和 Visual Studio 构建驱动程序时帮助你解决问题。

Ff554644.wedge(zh-cn,VS.85).gif使用 Visual Studio 中的选项增加构建输出详细信息的步骤

  1. 单击 Tools > Options
  2. 单击“项目和解决方案”文件夹并单击“生成并运行”****。
  3. 更改“MSBuild 项目构建输出详细信息”和“MSBuild 项目构建日志文件详细信息”****。 默认情况下,这些都设置为“最少”。

相关主题

Building in Visual Studio

为不同版本的 Windows 构建驱动程序

对用户模式驱动程序和桌面应用使用 Microsoft C 运行时

ProjectUpgradeTool

MSBuild

从现有源文件创建驱动程序

WDK 和 Visual Studio 构建环境

签署驱动程序

将驱动程序部署到测试计算机