在本主题中,我们介绍如何使用 Visual Studio 开始编写新的筛选器驱动程序。筛选器驱动程序不同于我们在其他主题中介绍的设备功能驱动程序、软件驱动程序以及文件系统驱动程序。 若要了解筛选器驱动程序以及它们与其他类型的驱动程序的不同之处,请参阅下列主题。
开始时,首先要确定你的筛选器驱动程序适合哪个驱动程序模型。要想在确定最适合你的模型时获得帮助,请参阅选择驱动程序模型。如果你为硬件设备编写筛选器驱动程序,则确定你的设备位于设备和驱动程序技术中介绍的技术列表中的什么位置。若要查看是否存在选择筛选器驱动程序模型的任何指南,请参阅该特定技术的文档。推荐的筛选器驱动程序模型因技术而异。对于某些技术,该文档推荐使用用户模式驱动程序框架 (UMDF)、内核模式驱动程序框架 (KMDF) 或 Windows 驱动程序模型 (WDM)。 对于其他技术,该文档详细介绍了如何编写筛选器驱动程序。一些技术具有微型筛选器模型。对于某些技术,可能没有筛选器驱动程序模型的任何建议。
接下来,确定下面的哪些案例描述了你的驱动程序模型建议并按照这些步骤执行操作:
案例 1:你的技术文档推荐 UMDF。
- 在 Visual Studio 的“文件”菜单中,选择“新建 | 项目”****。
- 在“新建项目”对话框的左侧窗格中,找到并选择“Visual C++ | Windows 驱动程序 | WDF”。
- 在中间窗格中,选择“用户模式驱动程序 (UMDF)”****。
- 填写“名称”和“位置”****框,然后单击“确定”。有关详细信息,请参阅基于模板编写 UMDF 驱动程序。注意 在创建新的 UMDF 驱动程序时,你必须选择一个长度不超过 32 个字符的驱动程序名称。此长度限制在 wdfglobals.h 中定义。
- 此时,你已拥有一个驱动程序项目,该项目实现大多数 UMDF 驱动程序所需的常规代码。现在,你可以提供特定于你的筛选器的代码。
案例 2:你的技术文档推荐 KMDF。
- 在 Visual Studio 的“文件”菜单中,选择“新建 | 项目”****。
- 在“新建项目”对话框的左侧窗格中,找到并选择 WDF。
- 在中间窗格中,选择“内核模式驱动程序 (KMDF)”****。
- 填写“名称”和“位置”****框,然后单击“确定”。有关详细信息,请参阅基于模板编写 KMDF 驱动程序。注意 在创建新的 KMDF 驱动程序时,你必须选择一个长度不超过 32 个字符的驱动程序名称。此长度限制在 wdfglobals.h 中定义。
- 此时,你已拥有一个驱动程序项目,该项目实现大多数 KMDF 驱动程序所需的常规代码。现在,你可以提供特定于你的筛选器的代码。
案例 3:你的技术文档介绍特定筛选器或微型筛选器模型。
如果你的设备技术拥有特定筛选器或微型筛选器模型,请查看 Visual Studio 是否拥有一个该模型的模板。
- 在 Visual Studio 的“文件”菜单中,选择“新建 | 项目”****。
- 在“新建项目”对话框的左侧窗格中,找到并选择“模板 | Visual C++ | Windows 驱动程序”。
- 浏览安装的模板列表,以查看是否存在你需要编写的筛选器类型的模板。例如,你可能会在“网络”****下,选择“筛选器驱动程序: NDIS”模板。
- 如果“Windows 驱动程序”****下没有你的筛选器驱动程序类型的模板,则单击“联机”并浏览联机提供的模板。
- 如果找到了你的筛选器驱动程序类型的模板,则选择该模板,填写“名称”和“位置”框,然后单击“确定”。
- 此时,你已拥有一个驱动程序项目,该项目实现你的筛选器驱动程序所需的常规代码。现在,你可以提供特定于你的筛选器的代码。若要了解你需要实现的功能的信息,请参阅你的技术文档。
如果你的设备技术具有特定筛选器模型或微型筛选器模型,并且你找不到你的筛选器驱动程序类型的模板,请参阅特定于你的技术的文档,以获得有关确定是使用 UMDF、KMDF,还是使用 WDM 的指南。
案例 4:你的技术文档推荐 WDM。
在 Visual Studio 的“文件”菜单中,选择“新建 | 项目”****。
在 Visual Studio 的“新建项目”对话框中,在“Windows 驱动程序”下,选择 WDM****。
填写“名称”和“位置”****框,然后单击“确定”。
此时,你已拥有一个空的 WDM 驱动程序项目。在“解决方案资源管理器”窗口中,右键单击你的驱动程序项目,然后选择“添加 | 新项目”****。
在“添加新项目”对话框中,选择“C++ 文件 (.cpp)”,输入你的文件名,然后单击“确定”****。
注意 如果你想创建 .c 文件而不是 .cpp 文件,请输入扩展名为 .c 的名称。
实现你的筛选器所需的功能。当你实现和组织你的功能时,你可能会决定添加其他 .cpp 或 .c 文件。
案例 5:你的技术文档没有筛选器驱动程序模型的建议。
确定 UMDF、KMDF,还是 WDM 是你的筛选器驱动程序的最佳模型。若要获得帮助,请参阅选择驱动程序模型。
在 Visual Studio 的“文件”****菜单中,选择“新建 | 项目”。
在 Visual Studio 的“新建项目”对话框中,在“Windows 驱动程序”****下,选择以下模板之一:
- WDF | 用户模式驱动程序 (UMDF)
- WDF | 内核模式驱动程序 (KMDF)
- WDM | 空的内核驱动程序
注意 在创建新的 KMDF 或 UMDF 驱动程序时,必须选择一个长度不超过 32 个字符的驱动程序名称。此长度限制在 wdfglobals.h 中定义。
实现你的筛选器所需的功能。根据需要创建新的 .c 或 .cpp 文件。
如果你不确定要使用哪个模板,请考虑阅读 Windows 硬件 WDK 和驱动程序开发论坛或向其中发帖。