创建新的设备功能驱动程序

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

开始时,首先要确定你的设备位于设备和驱动程序技术中介绍的技术列表中的什么位置。若要了解可用于你的设备的驱动程序模型,请参阅该特定技术的文档。 推荐的驱动程序模型因技术而异。对于某些技术,该文档推荐使用用户模式驱动程序框架 (UMDF) 或内核模式驱动程序框架 (KMDF)。 对于其他技术,该文档介绍了如何创建属于驱动程序对一部分的微型驱动程序。微型驱动程序依照各种名称,包含微型端口和微型类。

接下来,确定下面的哪些案例描述了你的驱动程序模型建议并按照这些步骤执行操作:

案例 1:你的技术文档推荐 UMDF。

  1. 在 Visual Studio 的“文件”菜单中,选择“新建 | 项目”****。
  2. 在“新建项目”对话框的左侧窗格中,找到并选择“Visual C++ | Windows 驱动程序 | WDF”。
  3. 在中间窗格中,选择“用户模式驱动程序 (UMDF)”****。
  4. 填写“名称”和“位置”****框,然后单击“确定”。有关详细信息,请参阅基于模板编写 UMDF 驱动程序注意  在创建新的 UMDF 驱动程序时,你必须选择一个长度不超过 32 个字符的驱动程序名称。此长度限制在 wdfglobals.h 中定义。  
  5. 此时,你已拥有一个驱动程序项目,该项目实现大多数 UMDF 驱动程序所需的常规代码。现在,你可以提供特定于你的设备的代码。若要了解你需要实现的界面的信息,请参阅你的技术文档。

案例 2:你的技术文档推荐 KMDF。

  1. 在 Visual Studio 的“文件”菜单中,选择“新建 | 项目”****。
  2. 在“新建项目”对话框的左侧窗格中,找到并选择 WDF。
  3. 在中间窗格中,选择“内核模式驱动程序 (KMDF)”****。
  4. 填写“名称”和“位置”****框,然后单击“确定”。有关详细信息,请参阅基于模板编写 KMDF 驱动程序注意  在创建新的 KMDF 驱动程序时,你必须选择一个长度不超过 32 个字符的驱动程序名称。此长度限制在 wdfglobals.h 中定义。  
  5. 此时,你已拥有一个驱动程序项目,该项目实现大多数 KMDF 驱动程序所需的常规代码。现在,你可以提供特定于你的设备的代码。若要了解你需要实现的方法的信息,请参阅你的技术文档。

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

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

  1. 在 Visual Studio 的“文件”菜单中,选择“新建 | 项目”****。
  2. 在“新建项目”对话框的左侧窗格中,找到并选择“模板 | Visual C++ | Windows 驱动程序”。
  3. 浏览安装的模板列表,以查找你需要编写的微型驱动程序类型的模板。
  4. 如果“Windows 驱动程序”****下没有你的微型驱动程序类型的模板,则单击“联机”并浏览联机提供的模板。
  5. 如果找到了你的微型驱动程序类型的模板,则选择该模板,填写“名称”和“位置”框,然后单击“确定”
  6. 此时,你已拥有一个驱动程序项目,该项目实现你的微型驱动程序所需的常规代码。现在,你可以提供特定于你的设备的代码。若要了解你需要实现的功能的信息,请参阅你的技术文档。

如果你的设备技术已拥有微型驱动程序模型,并且你无法找到你的微型驱动程序类型的特定模板,则 Windows 驱动程序模型 (WDM) 模板最有可能是你的起点。请参阅特定于你技术的文档来了解相关指南。极少数的情况下,你可以使用 KMDF 编写微型驱动程序,但通常起点都是 WDM。

  1. 在 Visual Studio 的“文件”菜单中,选择“新建 | 项目”****。

  2. 在 Visual Studio 的“新建项目”对话框中,在“Windows 驱动程序”下,选择 WDM****。

  3. 填写“名称”和“位置”****框,然后单击“确定”。

  4. 此时,你已拥有一个空的 WDM 驱动程序项目。在“解决方案资源管理器”窗口中,右键单击你的驱动程序项目,然后选择“添加 | 新项目”****。

  5. 在“添加新项目”对话框中,选择“C++ 文件 (.cpp)”,输入你的文件名,然后单击“确定”****。

    注意  如果你想创建 .c 文件而不是 .cpp 文件,请输入扩展名为 .c 的名称。

     

  6. 若要了解你需要实现的功能的信息,请参阅你的技术文档。当你实现和组织你的功能时,你可能会决定添加其他 .cpp 或 .c 文件。