usb - Fejl ved installation af brugerdefineret inf i Windows 10 Professional. Windows tilsidesætter det med OEM driver

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har lavet en underskrevet USB Serial inf-fil til en brugerdefineret enhed og oprettet et installationsprogram, der installerede driveren til Windows 7 (32/64), Windows 8.1 (64), men ikke Windows 10 med succes. Dette gælder for standardinstallationen (højre- klik, installer) direkte på filen, ved hjælp af Enhedshåndtering og brug af PNPUTIL. Enhedsdriveren installeres korrekt, men OEM usbser driveren bruges i stedet. Efter at have klikket på 'Opdater driver' og vælger min driver i Enhedshåndtering, beder Windows mig med 'Den bedste driver software er allerede installeret til din enhed'. Hvis jeg bruger Enhedshåndtering og vælger 'Har disk', kan jeg med succes løse problemet med Windows 10 håndhæve deres egen driver. Dette får mig ikke tættere på at have en vellykket inf fil og installatør dog.


Min proces til standardinstallation:



  1. Tag stikket ud af USB-porten

  2. Indlæs et snapbillede af nyinstalleret Windows 10 Professional

  3. Højreklik, installer på .inf filen

  4. Tilslut enheden

  5. Se på Enhedshåndtering og se, at den standard USB Serial Device driver, der er lavet af Microsoft, bruges i stedet for min driver



Hvis jeg derefter afinstallerer det og gentager trin 3-5, tillader det nogle gange min brugerdefinerede driver at holde fast.


Jeg har fået at vide, at min driver installerer på Windows 10 Enterprise, som forveksler spørgsmål yderligere.


Spørgsmål: Hvad gør jeg forkert?


Min inf-fil:


;************************************************************
; 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, USBVID\_1FC9&PID\_816A, USBVID\_1FC9&PID\_816A&MI\_00

[Models.NTamd64]
\%linux.gserial\%=DriverInstall, USBVID\_1FC9&PID\_816A, USBVID\_1FC9&PID\_816A&MI\_00

[Models.NTarm]
\%linux.gserial\%=DriverInstall, USBVID\_1FC9&PID\_816A, USBVID\_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


Opdatering: Yderligere info fra setupapi.dev.log


>>>  [Device Install (DiInstallDriver) - C:UsersR&DDesktopc500.inf]
>>>  Section start 2017/02/03 17:17:58.321      
cmd: "C:WindowsSystem32InfDefaultInstall.exe" "C:UsersR&DDesktopc500.inf"     
ndv: Flags: 0x00000000     
ndv: INF path: C:UsersR&DDesktopc500.inf     
inf: {SetupCopyOEMInf: C:UsersR&DDesktopc500.inf} 17:17:58.337     
inf:      Copy style: 0x00000000 !   
inf:      Driver package is already in driver store     
inf:      Driver Store Path: C:WindowsSystem32DriverStoreFileRepositoryc500.inf\_amd64\_4fee793fb11027acc500.inf    inf:      Published Inf Path: C:WindowsINFoem4.inf     
inf: {SetupCopyOEMInf exit (0x00000000)} 17:17:58.368
<<<  Section end 2017/02/03 17:17:58.399
<<<  [Exit status: SUCCESS]


Opdatering:
setupapi.dev.log giver følgende fejl, når du forsøger at installere enheden


 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.


Opdatering:
Installationsprogrammet til VBox guest additions klarer at installere min inf-fil i WIN10. Her er kilden:


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

Bedste reference


Prøv at indstille dit DriverVer direktiv korrekt, med dagens dato og 1.0.0.0. Datoen er en ting, som Windows ser på, når du beslutter, hvilken driver der skal bruges.

Andre referencer 1


Windows skal aktiveres, før brugeren får tilladelse til at tilsidesætte OEM-driverne i Windows 10. Åbne Windows på min testmaskine løst dette problem.