无法在目标 Windows 7 PC 上安装 virtualserial2 示例 UMDF 驱动程序

编程


由于我的开发机和测试机是带有 Windows 7 操作系统的 64 位 Windows 系统所以为了给自己一个良好的开端,我在 Microsoft 提供的 Windows-driver-samples-master/serial/VirtualSerial2 示例代码下编译了 ComPort 项目,初始它闪烁出现如下错误“提供商不能是“Microsoft”,必须是编写 INF 的组织”,因此我将 .inx 文件 MSFTUMDF=Microsoft 中的以下行更改为 MSFTUMDF=Sample,然后编译成功。

然后我按照以下过程在目标机器上安装驱动程序。

1)我将 VirtualSerial2um.cer 文件 VirtualSerial2um.inf 从 Windows-driver-samples-master\serial\VirtualSerial2\ComPort\x64\Debug & devcon.exe 从 C:\Program Files\Windows Kits\10\Tools\x64 复制到目标设备的 C:\ 驱动器中的 Sample 文件夹。

2)然后在目标计算机上打开 Internet Explorer,转到“Internet 选项”->“内容”->“证书”->“导入”,然后选择 VirtualSerial2um.cer 文件并导入证书。

3)然后在目标计算机上,我以管理员身份打开命令提示符,浏览到示例文件夹并键入以下命令。

devcon 安装 virtualSerial2um.inf UMDF\Virtual_1

然后在命令提示符上显示:
已创建设备树条目
开发者大会失败。

在设备管理器中,在未知设备下出现 COMn(n 是 com 端口号),但是当我打开超级终端时,COMn 不会显示在 COM 端口的下拉列表中。

现在我无法弄清楚为什么我的 devcon 安装失败,因为它说我的驱动程序已在设备树中注册,那么为什么它显示在未知设备中而不是在端口中

这是 VirtualSerial2um.inf 文件的内容

;
; 版权所有 (C) Microsoft Corporation,保留所有权利。
;
; 虚拟串行.inf
;
;安装注意事项:
; 输入“devcon install VirtualSerial2um.inf UMDF\VirtualSerial2um”进行安装

[Version]

签名=“$Windows NT$”
类=端口
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
提供商=%MSFTUMDF%
目录文件=WUDF.cat
驱动程序版本=05/30/2016,19.7.52.160

[Manufacturer]

%MSFTUMDF%=微软、NTx86

[Microsoft.NTx86]

%VirtualSerialDeviceName%=VirtualSerial_Install、UMDF\VirtualSerial2um

[SourceDisksFiles]

Virtualserial2um.dll=1

[SourceDisksNames]

1 = %媒体描述%

; =================== UMDF 虚拟串行设备 ============================== ======

[VirtualSerial_Install.NT]

CopyFiles=UMDriverCopy

[VirtualSerial_Install.NT.hw]

AddReg=设置设备类型_AddReg

[VirtualSerial_Install.NT.Services]

AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall

[VirtualSerial_Install.NT.Wdf]

UmdfService = VirtualSerial,VirtualSerial_Install
UmdfServiceOrder = 虚拟串行
UmdfKernelModeClientPolicy = 允许KernelModeClients
UmdfFileObjectPolicy = 允许NullAndUnknownFileObjects
UmdfFsContextUsePolicy = 无法使用FsContexts

[VirtualSerial_Install]

UmdfLibrary版本=2.15.0
ServiceBinary=%12%\UMDF\Virtualserial2um.dll

[WUDFRD_ServiceInstall]

显示名称 = %WudfRdDisplayName%
服务类型 = 1
开始类型 = 3
错误控制 = 1
ServiceBinary = %12%\WUDFRd.sys

[SetDeviceType_AddReg]

HKR,,设备类型,0x10001,0x0000001b ; 0x1b = 文件设备串行端口

[DestinationDirs]

UMDriverCopy=12,UMDF ; 复制到驱动程序\UMDF

[UMDriverCopy]

虚拟串口2um.dll

; =================== 通用================================ ====

[Strings]

MSFTUMDF=“示例”
MediaDescription=”Microsoft 示例驱动程序安装媒体”
WudfRdDisplayName=”Windows 驱动程序基础 – 用户模式驱动程序框架反射器”
VirtualSerialDeviceName=”Microsoft VirtualSerial 示例 (UMDF 2)”

我尝试过的:

1)我将 VirtualSerial2um.cer 文件 VirtualSerial2um.inf 从 Windows-driver-samples-master\serial\VirtualSerial2\ComPort\x64\Debug & devcon.exe 从 C:\Program Files\Windows Kits\10\Tools\x64 复制到目标设备的 C:\ 驱动器中的 Sample 文件夹。

2)然后在目标计算机上打开 Internet Explorer,转到“Internet 选项”->“内容”->“证书”->“导入”,然后选择 VirtualSerial2um.cer 文件并导入证书。

3)然后在目标计算机上,我以管理员身份打开命令提示符,浏览到示例文件夹并键入以下命令。

devcon 安装 virtualSerial2um.inf UMDF\Virtual_1

然后在命令提示符上显示:
已创建设备树条目
开发者大会失败。

在设备管理器中,在未知设备下出现 COMn(n 是 com 端口号),但是当我打开超级终端时,COMn 不会显示在 COM 端口的下拉列表中。

解决方案1

这是我如何让我的工作正常进行的。

0.cd到build文件夹

C:\Temp\VirtualSerial\ComPort\x64\Release\virtualserial>

1.首先使用devcon命令安装驱动,会失败。
Devcon 命令是

devcon install virtualserial.inf UMDF\VirtualSerial

2. 检查设备管理器,您将看到它显示为未知设备,或带有感叹号的COM#。

3. 右键单击​​它 -> 更新驱动程序 -> 浏览我的计算机以查找驱动程序软件 -> 让我从计算机上的可用驱动程序列表中进行选择

4.现在在我的机器上显示

Microsoft VirtualSerial User-Mode Device Sample

在它的下面,它显示

This driver is digitally signed

5. 现在,如果您单击从磁盘安装,并浏览到示例中的任何 virtualserial.inf 文件,它会更改为

This driver is not digitally signed

您不希望这样做,所以如果您这样做了,请取消并返回到步骤 3

6. 单击“下一步”,您应该会看到

Microsoft VirtualSerial User-Mode Device Sample (COM#)

在设备管理器的端口下。

请注意,您可以多次安装此驱动程序,每次都会为您提供不同的端口号

一些额外的调试步骤,供任何人阅读。

1. 如果您使用的是 x64 系统,请确保您正在构建 x64。 我让调试和发布都可以工作

2. 确保您正在从 Release 或 Debug 文件夹内的 virtualserial 文件夹运行 devcon。 因为该文件夹包含 WudfUpdate_01011.dll 文件

3. 如果您无法显示该驱动程序已进行数字签名,请从此处获取 Digicert 实用程序: https://www.digicert.com/util/DigiCertUtil.exe 您可能会看到 Internet Explorer 安装方法旁边有一个感叹号。 右键单击它,digicert 将描述问题并提供解决方案。 或者,您也可以使用 digiert 从相应的 Release 文件夹导入 virtualserial.cer 文件。

4.最后,检查devcon日志,它们位于:

C:\Windows\INF\setupapi.dev.log

您正在寻找 WHQL 签名。

5.最后,尝试构建和安装项目而不首先对其进行任何修改,我们当然正在谈论这个项目 Windows-driver-samples/serial/VirtualSerial at master · Microsoft/Windows-driver-samples · GitHub[^]

感谢您提供的信息。 您应该将其变成您问题的指导页面。

コメント

タイトルとURLをコピーしました