创建新的设备函数驱动程序

本文介绍如何使用 Visual Studio 开始编写新的设备函数驱动程序。 设备功能驱动程序不同于筛选器驱动程序、软件驱动程序和文件系统驱动程序,我们在其他文章中介绍了这些驱动程序。 若要了解设备功能驱动程序以及它们与其他类型的驱动程序有何不同,请参阅驱动程序是什么?选择驱动程序模型设备节点与设备堆栈

首先,请确定设备在 设备和驱动程序技术中所述的技术列表中适合的位置。 若要了解哪些驱动程序模型可用于你的设备,请参阅该特定技术的文档。 推荐的驱动程序模型因技术而异。 对于有些技术,此文档建议使用“用户模式驱动程序框架 (UMDF)”或“内核模式驱动程序框架 (KMDF)”。 对于其他技术,该文档介绍了如何创建属于驱动程序对的微型驱动程序。 微型驱动程序采用各种名称,包括微型端口和微型类。

确定以下哪一种情况描述了你的驱动程序模型建议,并按照步骤操作:

案例 1:技术的文档建议 UMDF

  1. 启动 Visual Studio。
  2. 在启动对话框中选择“创建新项目”,或选择“新建 |Visual Studio“文件”菜单中的项目。
  3. 在“ 创建新项目 ”对话框的右窗格中,找到并选择“ 用户模式驱动程序” (UMDF V2)
  4. 选择“下一页”。
  5. 填写 “项目名称”、“ 位置”和“ 解决方案名称 ”框,然后选择“ 创建”。 有关详细信息,请参阅基于模板编写 UMDF 驱动程序

    注意

    创建新的 UMDF 驱动程序时,必须选择包含 32 个字符或更少字符的驱动程序名称。 此长度限制在 wdfglobals.h 中定义。

  6. 此时,你的驱动程序项目可以实现大多数 UMDF 驱动程序所需的一般代码。 现在你可以提供特定于你的设备的代码。 请参阅你的技术的相关文档来了解你需要实现的接口。

案例 2:技术的文档建议 KMDF

  1. 启动 Visual Studio。
  2. 在启动对话框中选择“创建新项目”,或选择“新建 |Visual Studio“文件”菜单中的项目。
  3. 在“ 创建新项目 ”对话框的右窗格中, (KMDF) 找到并选择“内核模式驱动程序 ”。
  4. 选择“下一页”。
  5. 填写 “项目名称”、“ 位置”和“ 解决方案名称 ”框,然后选择“ 创建”。 有关详细信息,请参阅基于模板编写 KMDF 驱动程序

    注意

    在创建新的 KMDF 驱动程序时,必须选择一个不多于 32 个字符的驱动程序名称。 此长度限制在 wdfglobals.h 中定义。

  6. 此时,你的驱动程序项目可以实现大多数 KMDF 驱动程序所需的一般代码。 现在你可以提供特定于你的设备的代码。 请参阅你的技术的相关文档来了解你需要实现的方法。

案例 3:技术文档介绍了微型驱动程序模型

如果设备技术具有微型端口、微型类或其他一些微型驱动程序模型,检查查看 Visual Studio 是否具有该模型的特定模板。

  1. 启动 Visual Studio。
  2. 在启动对话框中选择“创建新项目”,或选择“新建 |Visual Studio“文件”菜单中的项目。
  3. 在“ 创建新项目 ”对话框的右窗格中,浏览已安装模板的列表,查找需要编写的驱动程序类型的模板。
  4. 如果找到适用于驱动程序类型的模板,请选择它。
  5. 选择“下一页”。
  6. 填写 “项目名称”、“ 位置”和“ 解决方案名称 ”框,然后选择“ 创建”。
  7. 如果看到驱动程序向导,请逐步完成向导以创建驱动程序项目。
  8. 此时,你有一个驱动程序项目,用于实现驱动程序所需的常规代码。 现在你可以提供特定于你的设备的代码。 请参阅你的技术的文档来了解你需要实现的功能。

如果你的设备技术具有微型驱动程序模型,并且你找不到适用于微型驱动程序类型的特定模板,则 Windows 驱动程序模型 (WDM) 模板很可能是你的起点。 请参阅技术特定文档获取指导信息。 在极少数情况下,你可以使用 KMDF 编写微型驱动程序,但通常起点是 WDM。

  1. 启动 Visual Studio。
  2. 在启动对话框中选择“创建新项目”,或选择“新建 |Visual Studio“文件”菜单中的项目。
  3. 在“ 创建新项目 ”对话框的右窗格中,找到并选择“ 空 WDM 驱动程序”。
  4. 选择“下一页”。
  5. 填写 “项目名称”、“ 位置”和“ 解决方案名称 ”框,然后选择“ 创建”。
  6. 此时,你有一个空的 WDM 驱动程序项目。 在“解决方案资源管理器”窗口中,右键单击你的驱动程序项目,然后选择“添加 | 新项目” 。
  7. 在“ 添加新项 ”对话框中,输入.cpp文件的名称,然后选择“ 添加”。

    注意

    若要创建 .c 文件而不是 .cpp 文件,请输入包含 .c 扩展名的名称。

  8. 请参阅你的技术的文档来了解你需要实现的功能。 实现和组织函数时,可能会决定添加更多.cpp或 .c 文件。