如何检查是否已安装USB CDC驱动程序

时间:2019-10-02 23:15:21

标签: c++ windows winapi driver cdc

我需要为客户PC安装USB CDC驱动程序(com端口),以便我的c ++ mfc应用程序可以正常工作。在Windows 8和10上已预安装了驱动程序,问题是Windows的版本较旧。

我有来自Silabs的驱动程序,有.cat,.inf和.exe文件。打开安装程序后-确认条款后,仅显示“ Silicon Laboratories。Inc.(usbser)端口(03/26/2014 6.1.7601.17514)-准备使用” 。 >

我尝试了this,但是列表中没有usbser.sys或类似的东西。也没有找到this,但找不到类似“ USB \ VID_1BA4&PID_0002”(我在.inf文件中找到)的东西。我还尝试在regedit中搜索ClassGUID( 4D36E978-E325-11CE-BFC1-08002BE10318 )和class = ports。总是发现相同的东西,这可能不是我想要的。

我应该找什么?哪个参数重要?谢谢。

.inf文件

[Version]
Signature="$WINDOWS NT$"
Class=Ports
ClassGUID={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%SILICONLABS%
DriverVer=03/26/2014,6.1.7601.17514
CatalogFile=SiLabs-CDC.cat

[Manufacturer]
%SILICONLABS%=DeviceList, NT, NTAMD64, NTIA64

;------------------------------------------------------------------------------

[DeviceList]
%CDCDEVICE_1BA4_0002%=DriverInstall,USB\VID_1BA4&PID_0002
%CDCDEVICE_2544_0003%=DriverInstall,USB\VID_2544&PID_0003
%CDCDEVICE_10C4_0003%=DriverInstall,USB\VID_10C4&PID_0003
%CDCDEVICE_2544_0008_02%=DriverInstall,USB\VID_2544&PID_0008&MI_02
%CDCDEVICE_10C4_0008_02%=DriverInstall,USB\VID_10C4&PID_0008&MI_02

[DeviceList.NT]
%CDCDEVICE_1BA4_0002%=DriverInstall,USB\VID_1BA4&PID_0002
%CDCDEVICE_2544_0003%=DriverInstall,USB\VID_2544&PID_0003
%CDCDEVICE_10C4_0003%=DriverInstall,USB\VID_10C4&PID_0003
%CDCDEVICE_2544_0008_02%=DriverInstall,USB\VID_2544&PID_0008&MI_02
%CDCDEVICE_10C4_0008_02%=DriverInstall,USB\VID_10C4&PID_0008&MI_02

[DeviceList.NTAMD64]
%CDCDEVICE_1BA4_0002%=DriverInstall,USB\VID_1BA4&PID_0002
%CDCDEVICE_2544_0003%=DriverInstall,USB\VID_2544&PID_0003
%CDCDEVICE_10C4_0003%=DriverInstall,USB\VID_10C4&PID_0003
%CDCDEVICE_2544_0008_02%=DriverInstall,USB\VID_2544&PID_0008&MI_02
%CDCDEVICE_10C4_0008_02%=DriverInstall,USB\VID_10C4&PID_0008&MI_02

[DeviceList.NTIA64]
%CDCDEVICE_1BA4_0002%=DriverInstall,USB\VID_1BA4&PID_0002
%CDCDEVICE_2544_0003%=DriverInstall,USB\VID_2544&PID_0003
%CDCDEVICE_10C4_0003%=DriverInstall,USB\VID_10C4&PID_0003
%CDCDEVICE_2544_0008_02%=DriverInstall,USB\VID_2544&PID_0008&MI_02
%CDCDEVICE_10C4_0008_02%=DriverInstall,USB\VID_10C4&PID_0008&MI_02

;------------------------------------------------------------------------------

[DriverInstall]
Include=mdmcpq.inf
CopyFiles=FakeModemCopyFileSection
AddReg=SerialPropPageAddReg

[DriverInstall.Services]
Include=mdmcpq.inf
AddService = usbser, 0x00000002, DriverServiceInst

[DriverServiceInst]
DisplayName=%SERVICE%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys

[SerialPropPageAddReg]
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

;------------------------------------------------------------------------------

[Strings]
SILICONLABS = "Silicon Laboratories, Inc."
CDCDEVICE_1BA4_0002 = "Silicon Labs CDC Serial port"
CDCDEVICE_2544_0003 = "Silicon Labs CDC Serial port"
CDCDEVICE_10C4_0003 = "Silicon Labs CDC Serial port"
CDCDEVICE_2544_0008_02 = "Silicon Labs CDC Serial port"
CDCDEVICE_10C4_0008_02 = "Silicon Labs CDC Serial port"
SERVICE   = "USB CDC Serial Port Driver"

1 个答案:

答案 0 :(得分:0)

您使用的代码示例为Enumerating All Device Drivers in the System(已加载驱动程序)。

我使用FTDI USB-to-UART设备进行测试。将设备连接到PC后(驱动程序已加载到内存中),我可以像下面列出相关的驱动程序,否则无法列出。

enter image description here

因此,尝试连接USB CDC设备,然后重试。

基于评论的更新:“但是在哪里可以找到驱动程序是否已经签名,这就是问题所在。”

右键单击驱动程序的* .sys文件,然后检查“数字签名”选项卡。

enter image description here