基于模板编写通用 Windows 驱动程序 (UMDF 2)

本主题介绍了如何使用用户模式驱动程序框架 (UMDF) 2 编写通用 Windows 驱动程序。首先使用 Microsoft Visual Studio 模板,然后在单独的计算机上部署和安装你的驱动程序。

若要开始操作,请确保你已安装 Visual Studio 2015 和 Windows 驱动程序工具包 (WDK) 10。可从 Windows 硬件开发人员中心下载它们。

当安装 WDK 时,需要包含 Windows 调试工具

创建和构建驱动程序包

  1. 打开 Visual Studio。在“文件”菜单上,选择“新建 > 项目”
  2. 在“新建项目”对话框的左侧窗格中,依次转到“模板”>“Visual C++”>“Windows 驱动程序”>“WDF”。 选择“用户模式驱动程序 (UMDF V2)”
  3. 在“名称”字段中,输入“UmdfDriver”作为项目名称。

    注意  在创建新的 KMDF 或 UMDF 驱动程序时,必须选择一个不多于 32 个字符的驱动程序名称。此长度限制在 wdfglobals.h 中定义。
     
  4. 在“位置”字段中,输入要在其中创建新项目的目录。
  5. 选中“创建解决方案的目录”。单击“确定”

    “新建项目”对话框的屏幕截图,显示选中的 WDF 和用户模式驱动程序

    Visual Studio 创建了一个项目和一个解决方案。你可以在“解决方案资源管理器”窗口中看到它们。(如果“解决方案资源管理器”窗口不可见,则从“视图”菜单中选择“解决方案资源管理器”。)该解决方案包含名为 UmdfDriver 的驱动程序项目。若要查看驱动程序源代码,则打开“源文件”下的任何文件。Driver.cpp 和 Device.cpp 是不错的开始位置。

    解决方案资源管理器的屏幕截图,显示驱动程序项目和包项目中的文件
  6. 在“解决方案资源管理器”窗口中,右键单击“解决方案‘KmdfSmall’(1 个项目)”,然后选择“配置管理器”。为驱动程序项目和程序包项目选择配置和平台。例如,选择调试和 x64。

  7. 在“解决方案资源管理器”窗口中,右键单击“UmdfDriver”,然后选择“属性”。 导航到“配置属性”>“驱动程序设置”>“常规”,请注意,“目标平台”默认为“通用”

  8. 若要构建驱动程序并创建驱动程序包,请从“构建”菜单中选择“构建解决方案”。Microsoft Visual Studio 在“输出”窗口中显示生成进度。(如果“输出”窗口不可见,则从“视图”菜单中选择“输出”。)

    验证生成输出是否包括:

    >  Driver is a Universal Driver.
    

    当你已验证解决方案成功生成后,可以关闭 Visual Studio。

  9. 若要查看生成的驱动程序,则在“文件资源管理器”中,依次转到你的“UmdfDriver”文件夹和“x64\Debug\UmdfDriver”。该目录包含以下文件:

    • UmdfDriver.dll -- 用户模式驱动程序文件
    • UmdfDriver.inf -- 在安装驱动程序时 Windows 使用的信息文件

部署和安装通用 Windows 驱动程序

通常当你测试和调试驱动程序时,调试器和驱动程序会在不同的计算机上运行。运行调试器的计算机称为“主计算机”,运行驱动程序的计算机称为“目标计算机”。目标计算机也称为“测试计算机”

到目前为止,你已在主计算机上使用 Visual Studio 构建了驱动程序。现在,你需要配置目标计算机。按照预配计算机以便进行驱动程序部署和测试 (WDK 10) 中的说明进行操作。然后,你可以随时部署、安装、加载和调试驱动程序:

  1. 在主机上,打开 Visual Studio 中的解决方案。你可以在 UmdfDriver 文件夹中双击解决方案文件 UmdfDriver.sln。
  2. 在“解决方案资源管理器”窗口中,右键单击“UmdfDriver”,然后选择“属性”
  3. 在“UmdfDriver 属性页”窗口中,依次转到“配置属性”>“驱动程序安装”>“部署”,如此处所示。
  4. 选中“部署前删除以前的驱动程序版本”
  5. 对于“目标设备名称”,请选择配置用于测试和调试的计算机名。
  6. 选择“硬件 ID 驱动程序更新”,然后输入驱动程序的硬件 ID。在本练习中,硬件 ID 为 Root\UmdfDriver。单击“确定”

    “UmdfDriver Package 属性页”的屏幕截图,显示选择的“部署驱动程序安装”
    注意  在本练习中,硬件 ID 未标识硬件的真实部分。它标识了虚构设备,该设备位于设备树中,作为根节点的子节点。对于真实的硬件,不选择“硬件 ID 驱动程序更新”,选择“安装和验证”

    你可以在驱动程序的信息 (INF) 文件中看到硬件 ID。在“解决方案资源管理器”窗口中,转到“UmdfDriver”>“驱动程序文件”,然后双击“UmdfDriver.inf”。硬件 ID 位于 [Standard.NT$ARCH$] 之下。

    
    [Standard.NT$ARCH$]
    %DeviceName%=MyDevice_Install,Root\UmdfDriver
    
    
     
  7. 在“调试”菜单上,选择“启动调试”或按键盘上的 F5
  8. 等待直至已在目标计算机上部署、安装以及加载驱动程序。这可能需要几分钟的时间。

相关主题

开发、测试以及部署驱动程序
Windows 调试工具
编写第一个驱动程序

 

 

显示: