无法在Windows 10 Professional中安装自定义inf。 Windows使用OEM驱动程序覆盖它

时间:2017-02-03 00:29:49

标签: windows usb driver usbserial inf

我为自定义设备制作了一个已签名的USB Serial inf文件,并创建了一个安装程序,可以将驱动程序成功安装到Windows 7(32/64),Windows 8.1(64)但不安装Windows 10.这适用于默认安装(右键单击,安装)直接在文件上,使用设备管理器并使用PNPUTIL。设备驱动程序已成功安装,但使用的是OEM usbser驱动程序。点击"更新驱动程序"在设备管理器中选择我的驱动程序,Windows提示我"已经为您的设备安装了最好的驱动程序软件"。如果我使用设备管理器并选择" Have Disk"我可以成功解决Windows 10强制执行自己的驱动程序的问题。这并没有让我更接近成功的inf文件和安装程序。

我的默认安装流程:

  1. 从USB端口拔下设备
  2. 加载新安装的Windows 10 Professional
  3. 的快照
  4. 右键单击,安装在.inf文件
  5. 插入设备
  6. 查看设备管理器,看到使用Microsoft制造的标准USB串行设备驱动程序而不是我的驱动程序
  7. 如果我然后卸载它并重复步骤3-5,它有时会允许我的自定义驱动程序坚持。

    我被告知我的驱动程序安装在Windows 10企业版上,这让人感到困惑。

    问题:我做错了什么?

    我的inf文件:

    ;************************************************************
    ; Windows USB CDC ACM Setup File
    ; Copyright (c) 2000 Microsoft Corporation
    
    ; Version v1.1, updated 17 April 2013
    
    
    [Strings]
    DriverPackageDisplayName="Rinstrum USB Serial Drivers"
    ManufacturerName="Rinstrum"
    ServiceName="USB RS-232 Emulation Driver"
    linux.gserial="Rinstrum USB Gadget Serial"
    MFGNAME="Rinstrum"
    
    [DefaultInstall]
    CopyINF=c500.inf
    
    [Version]
    DriverVer=03/02/2017,1.0.0.0
    Signature=$Windows NT$
    Class=Ports
    ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
    Provider=%MFGNAME%
    CatalogFile=c500.cat
    DriverPackageDisplayName=%DriverPackageDisplayName%
    PnpLockdown=1
    
    [Manufacturer]
    %MFGNAME%=Models,NTx86,NTamd64,NTarm
    
    [DestinationDirs]
    DefaultDestDir=12
    FakeModemCopyFileSection=12
    
    [Models.NTx86]
    %linux.gserial%=DriverInstall, USB\VID_1FC9&PID_816A, USB\VID_1FC9&PID_816A&MI_00
    
    [Models.NTamd64]
    %linux.gserial%=DriverInstall, USB\VID_1FC9&PID_816A, USB\VID_1FC9&PID_816A&MI_00
    
    [Models.NTarm]
    %linux.gserial%=DriverInstall, USB\VID_1FC9&PID_816A, USB\VID_1FC9&PID_816A&MI_00
    
    [DriverInstall]
    Include=mdmcpq.inf
    CopyFiles=FakeModemCopyFileSection
    AddReg=DriverAddReg
    
    [DriverAddReg]
    HKR,,DevLoader,,*ntkern
    HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
    HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
    
    [DriverInstall.Services]
    Include=mdmcpq.inf
    AddService=usbser,0x2,DriverService
    
    [DriverService]
    DisplayName=%ServiceName%
    ServiceType=1
    StartType=3
    ErrorControl=1
    ServiceBinary=%12%\usbser.sys
    LoadOrderGroup=Base
    

    更新:来自setupapi.dev.log的其他信息

    >>>  [Device Install (DiInstallDriver) - C:\Users\R&D\Desktop\c500.inf]
    >>>  Section start 2017/02/03 17:17:58.321      
    cmd: "C:\Windows\System32\InfDefaultInstall.exe" "C:\Users\R&D\Desktop\c500.inf"     
    ndv: Flags: 0x00000000     
    ndv: INF path: C:\Users\R&D\Desktop\c500.inf     
    inf: {SetupCopyOEMInf: C:\Users\R&D\Desktop\c500.inf} 17:17:58.337     
    inf:      Copy style: 0x00000000 !   
    inf:      Driver package is already in driver store     
    inf:      Driver Store Path: C:\Windows\System32\DriverStore\FileRepository\c500.inf_amd64_4fee793fb11027ac\c500.inf    inf:      Published Inf Path: C:\Windows\INF\oem4.inf     
    inf: {SetupCopyOEMInf exit (0x00000000)} 17:17:58.368
    <<<  Section end 2017/02/03 17:17:58.399
    <<<  [Exit status: SUCCESS]
    

    更新: setupapi.dev.log在尝试安装设备时出现以下错误

     sig:                     Success: File is signed in Authenticode(tm) catalog.
     sig:                     Error 0xe0000242: The publisher of an Authenticode(tm) signed catalog has not yet been established as trusted.
    

    更新: VBox guest添加安装程序设法在WIN10中安装我的inf文件。这是来源:

    https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Additions/WINNT/Installer/VBoxDrvInst.cpp#L433

2 个答案:

答案 0 :(得分:3)

在授予用户覆盖Windows 10中的OEM驱动程序权限之前,需要激活Windows。在我的测试计算机上激活窗口可以解决此问题。

答案 1 :(得分:2)

尝试使用今天的日期和1.0.0.0正确设置DriverVer指令。在决定使用哪种驱动程序时,Windows会查看日期。