生成和加载 WDF 驱动程序

本主题介绍如何在 Visual Studio 中为驱动程序项目选择目标操作系统和框架版本。

若要确定是否需要在驱动程序包中包含可再发行框架组件,请参阅 可再发行框架组件

应使用哪个框架版本?

  • 若要面向 Windows XP,请使用 WDF 1.9 或更早版本。
  • 若要面向 Windows Vista、Windows 7 或 Windows 8,请使用 WDF 1.11 或更早版本。
  • 若要以Windows 8.1为目标,请使用 KMDF 1.13 或更早版本、UMDF 1.x 或 UMDF 2.0。
  • 若要面向Windows 10版本 1507,请使用 KMDF 1.15 或更早版本、UMDF 1.x、UMDF 2.15 或更早版本。

有关 KMDF 和 UMDF 版本的详细信息,请参阅 KMDF 版本历史记录UMDF 版本历史记录

如何实现 Visual Studio 中设置版本?

如果要为最新版本的 Windows 和最新的 KMDF 或 UMDF 版本生成驱动程序项目,可以保留默认值并跳过此步骤。

否则,请执行以下步骤:

  • 右键单击解决方案并选择“Configuration Manager”。 将 “项目配置” 设置为所需的值, (例如 “调试) ”。
  • 右键单击驱动程序项目,然后选择“ 属性”。 打开 “配置属性->驱动程序设置->驱动程序模型”。 将驱动程序模型设置中的 KMDF 次要版本 (目标版本) UMDF 版本次要 (目标版本) 值更改为所需的值。 有关 KMDF 版本次要 (最低要求) UMDF 版本次要 (最低要求) 的信息,请参阅 指定最低要求

可以使用随 Windows 10 附带的 Windows 驱动程序工具包 (WDK) 生成 KMDF 1.9-1.29 驱动程序,以及 UMDF 1.9-2.29 驱动程序。

有关 KMDF 和 UMDF 版本的详细信息,请参阅 KMDF 版本历史记录UMDF 版本历史记录

链接和加载

在 Microsoft Visual Studio 中生成 Windows 驱动程序框架 (WDF) 项目时,MSBuild 会将驱动程序链接到相应的框架库、库的加载程序以及存根文件,所有这些文件都包含在 WDK 中。 (库和加载程序也包含在框架的 辅助安装程序 中,以便如有必要,可以使用驱动程序包分发它们。)

存根文件包含一个特殊的入口点例程: FxDriverEntry。 MSBuild 将存根的 FxDriverEntry 例程设置为基于框架的驱动程序的初始入口点。

当操作系统加载基于框架的驱动程序时,它还会加载存根文件和库的加载程序。 接下来,系统调用存根文件的 FxDriverEntry 例程。 然后,此例程调用加载程序。 加载程序确定驱动程序所需的框架库版本,然后将正确的 库版本 作为内核模式服务加载 ((如果尚未加载) )。 最后,库调用驱动程序的 DriverEntry 例程。