CFU 虚拟 HID 设备固件更新模拟

本主题介绍在虚拟 HID 设备上进行模拟固件更新的演练。

注意

CFU 在 Windows 10 版本 2004(Windows 10 2020 年 5 月更新)和更高版本中可用。

生成并安装 CFU 虚拟 HID 设备示例

  1. 按照下载 Windows 驱动程序工具包 (WDK) 中的概述安装 Visual Studio 2019 和 Windows 驱动程序工具包 (WDK)。

  2. 将 Microsoft CFU 存储库克隆到本地存储库目录中

    git clone https://github.com/microsoft/CFU.git

  3. 在本地 CFU 存储库目录中的命令提示符下运行以下 git 命令,获取生成示例所需的驱动程序模块框架 (DMF) 子模块:

    git submodule init

    git submodule update

  4. 在 Visual Studio 中生成 CfuVirtualHid 设备解决方案

    1. 导航至开发系统中 CfuVirtualHid.sln 文件的位置。 例如:

      C:\<your_repo_folder>\CFU\Host\CFUFirmwareSimulation\CfuVirtualHid.sln

    2. 在 Visual Studio 中打开 CfuVirtualHid.sln 文件。

    3. 从“构建”菜单中,选择“构建解决方案”。 应会看到指示解决方案已成功生成的输出文本:

      CfuVirtualHid 生成成功。

  5. 安装 CfuVirtualHid 设备和驱动程序

    1. 导航至开发系统中 cfuvirtualhid.inf 文件的位置。 例如:

      C:\<your_repo_folder>\CFU\Host\CFUFirmwareSimulation\x64\Debug\CfuVirtualHid

    2. 在管理命令提示符下运行以下命令:

      devcon.exe install cfuvirtualhid.inf HID\CFU_VIRTUAL_DEVICE
      

      应会看到表示虚拟设备已成功安装的输出文本:

      CfuVirtualHid 设备安装成功。

  6. 从“控制面板”中,打开“设备管理器”,选择“查看”菜单,然后选择“按类型划分的设备”菜单项。

  7. 在设备列表中,展开“固件”节点,然后选择“CfuVirtualHid 设备”,如图所示:

    已选择 CfuVirtualHid 设备。

  8. 右键单击“CfuVirtualHid 设备”打开上下文菜单,然后单击“属性”菜单项以打开“CfuVirtualHid 设备属性”对话窗口。

  9. 在“CfuVirtualHid 设备属性”对话窗口中选择“详细信息”选项卡,然后在“属性”下拉列表中选择“硬件 ID”。

    如图所示,应该会在“值”列表框中看到 HID\CFU_VIRTUAL_DEVICE

    值列表框中的 HID\CFU_VIRTUAL_DEVICE。

  10. 在“设备管理器”菜单中,选择“查看”,然后选择“按连接显示设备”菜单项。

    CfuVirtualHid 按连接查看设备。

  11. 导航到“CfuVirtualHid 设备”并展开“CfuVirtualHid 设备”节点,展开“虚拟 HID 框架 (VHF) HID 设备”节点,然后选择“HID 兼容设备”列表项,如图所示:

    符合 HID 的设备列表项。

  12. 右键单击“HID 兼容设备”打开上下文菜单,然后单击“属性”菜单项以打开“HID 兼容设备属性”对话窗口。

  13. 在“HID 兼容设备属性”对话窗口中选择“详细信息”选项卡,然后在“属性”下拉列表中选择“硬件 ID”。

    “值”列表框中应会显示 HID\VID_045E&UP:FA00_U:00F5,如下所示:

    值列表中的 HID VID 设备。

安装 CFU 虚拟 HID 设备的固件更新

本节提供了在示例 CfuVirtualHid Device 设备上安装固件更新的示例,该示例在 Visual Studio 2019 中构建,并使用 devcon.exe 命令行工具来安装,如上一节所述。

  1. 导航至目标设备的 .inf 文件以及固件报价和有效负载 .bin 文件的位置。 例如:

    步骤 1.

  2. 在文本编辑器中打开固件更新 INF 文件。 在本例中,我们将使用 CFU INF 配置中概述的 CfuVirtualHidDeviceFwUpdate.inf 文件。

  3. 在固件更新 INF 文件中,移动到 [Standard.NTamd64] 部分并验证 HID\VID_045E&UP:FA00_U:00F5 设备是否存在以下信息:

    [Standard.NTamd64]
    %CfuVirtualHidDeviceFwUpdate.DeviceDesc%=CfuVirtualHidDeviceFwUpdate, HID\VID_045E&UP:FA00_U:00F5 ; HardwareID for VirtualHidDevice MCU
    
    [CfuVirtualHidDeviceFwUpdate.NT]
    Include            = HidCfu.inf
    Needs              = HidCfu.NT
    CopyFiles          = CfuVirtualHidDeviceFwUpdate.CopyFiles
    
    [CfuVirtualHidDeviceFwUpdate.NT.Wdf]
    Include            = HidCfu.inf
    Needs              = HidCfu.NT.Wdf
    
  4. 在管理命令提示符下运行以下命令:

    pnputil /add-driver CfuVirtualHidDeviceFwUpdate.inf /install

    此命令将返回 PnP Utility 输出。 例如:

    pnp 实用工具输出。

  5. 在“设备管理器”中,导航到“CfuVirtualHid 设备”节点,然后展开该节点以验证 CfuVirtualHidDevice 固件更新是否已安装,如图所示:

    已安装 cfu 虚拟 hid 设备固件更新。

  6. 选择 CfuVirtualHidDevice 固件更新节点,然后打开 CfuVirtualHidDevice 固件更新属性窗口,如下所示:

    cfu 虚拟 hid 设备固件更新属性窗口。

  7. “CfuVirtualHidDevice 固件更新属性”窗口中,选择“详细信息”选项卡,然后在“属性”下拉列表中选择“硬件 ID”,如下所示:

    属性下拉列表中的硬件 ID。

  8. 验证 HID\VID_045E&UP:FA00_U:00F5 设备是否显示在 CfuVirtualHidDevice 固件更新的硬件 ID 值 中。

    值列表中的硬件 ID。

  9. 使用 TraceView 应用程序查看 CFU 虚拟 HID 设备安装的日志消息的信息。 例如:

    traceview 日志消息信息。