CFU 虚拟 HID 设备固件更新模拟
本主题介绍在虚拟 HID 设备上进行模拟固件更新的演练。
注意
CFU 在 Windows 10 版本 2004(Windows 10 2020 年 5 月更新)和更高版本中可用。
生成并安装 CFU 虚拟 HID 设备示例
按照下载 Windows 驱动程序工具包 (WDK) 中的概述安装 Visual Studio 2019 和 Windows 驱动程序工具包 (WDK)。
将 Microsoft CFU 存储库克隆到本地存储库目录中
git clone https://github.com/microsoft/CFU.git
在本地 CFU 存储库目录中的命令提示符下运行以下 git 命令,获取生成示例所需的驱动程序模块框架 (DMF) 子模块:
git submodule init
git submodule update
在 Visual Studio 中生成 CfuVirtualHid 设备解决方案
导航至开发系统中 CfuVirtualHid.sln 文件的位置。 例如:
C:\<your_repo_folder>\CFU\Host\CFUFirmwareSimulation\CfuVirtualHid.sln
在 Visual Studio 中打开 CfuVirtualHid.sln 文件。
从“构建”菜单中,选择“构建解决方案”。 应会看到指示解决方案已成功生成的输出文本:
安装 CfuVirtualHid 设备和驱动程序
导航至开发系统中 cfuvirtualhid.inf 文件的位置。 例如:
C:\<your_repo_folder>\CFU\Host\CFUFirmwareSimulation\x64\Debug\CfuVirtualHid
在管理命令提示符下运行以下命令:
devcon.exe install cfuvirtualhid.inf HID\CFU_VIRTUAL_DEVICE
应会看到表示虚拟设备已成功安装的输出文本:
从“控制面板”中,打开“设备管理器”,选择“查看”菜单,然后选择“按类型划分的设备”菜单项。
在设备列表中,展开“固件”节点,然后选择“CfuVirtualHid 设备”,如图所示:
右键单击“CfuVirtualHid 设备”打开上下文菜单,然后单击“属性”菜单项以打开“CfuVirtualHid 设备属性”对话窗口。
在“CfuVirtualHid 设备属性”对话窗口中选择“详细信息”选项卡,然后在“属性”下拉列表中选择“硬件 ID”。
如图所示,应该会在“值”列表框中看到 HID\CFU_VIRTUAL_DEVICE:
在“设备管理器”菜单中,选择“查看”,然后选择“按连接显示设备”菜单项。
导航到“CfuVirtualHid 设备”并展开“CfuVirtualHid 设备”节点,展开“虚拟 HID 框架 (VHF) HID 设备”节点,然后选择“HID 兼容设备”列表项,如图所示:
右键单击“HID 兼容设备”打开上下文菜单,然后单击“属性”菜单项以打开“HID 兼容设备属性”对话窗口。
在“HID 兼容设备属性”对话窗口中选择“详细信息”选项卡,然后在“属性”下拉列表中选择“硬件 ID”。
“值”列表框中应会显示 HID\VID_045E&UP:FA00_U:00F5,如下所示:
安装 CFU 虚拟 HID 设备的固件更新
本节提供了在示例 CfuVirtualHid Device 设备上安装固件更新的示例,该示例在 Visual Studio 2019 中构建,并使用 devcon.exe 命令行工具来安装,如上一节所述。
导航至目标设备的 .inf 文件以及固件报价和有效负载 .bin 文件的位置。 例如:
在文本编辑器中打开固件更新 INF 文件。 在本例中,我们将使用 CFU INF 配置中概述的 CfuVirtualHidDeviceFwUpdate.inf 文件。
在固件更新 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
在管理命令提示符下运行以下命令:
pnputil /add-driver CfuVirtualHidDeviceFwUpdate.inf /install
此命令将返回 PnP Utility 输出。 例如:
在“设备管理器”中,导航到“CfuVirtualHid 设备”节点,然后展开该节点以验证 CfuVirtualHidDevice 固件更新是否已安装,如图所示:
选择 CfuVirtualHidDevice 固件更新节点,然后打开 CfuVirtualHidDevice 固件更新属性窗口,如下所示:
在“CfuVirtualHidDevice 固件更新属性”窗口中,选择“详细信息”选项卡,然后在“属性”下拉列表中选择“硬件 ID”,如下所示:
验证 HID\VID_045E&UP:FA00_U:00F5 设备是否显示在 CfuVirtualHidDevice 固件更新的硬件 ID 值 中。
使用 TraceView 应用程序查看 CFU 虚拟 HID 设备安装的日志消息的信息。 例如: