usb - Inf-fil kan ikke finde usbser.sys kun i Windows 7

Indlæg af Hanne Mølgaard Plasc

Problem



UPDATE: Takket være svaret nedenfor lykkedes det mig at få det til at fungere på Windows 7. Jeg har siden indset, at Windows 10 installerer, men overstyrer min driver med OEM USB Serial driveren. Se venligst: Fejl ved installation af brugerdefineret inf i Windows 10 Professional. Windows tilsidesætter det med OEM driver


-


Jeg forsøgte at lave en inf-fil, der installerer en usb-seriel enhed ved hjælp af standard Windows-usb-seriel driver. Denne fil installerer driveren korrekt på Windows 8.1 og Windows 10, men fejler i Windows 7 32bit og Windows 7 64 bit. Jeg forsøgte at højreklikke på at installere driveren fra skrivebordet (standardinstallation). Første gang jeg forsøgte dette blev jeg præsenteret for fejlen 'Den inf-fil, du foreslog, understøtter ikke denne metode til installation'. Jeg tilføjede standardInstall sektioner til inf filen. Efter det gjorde jeg fejlen, men systemet kunne ikke finde usbser.sys. 'Filen' usbser.sys 'på Windows-cd er nødvendig.'


Hvad skal jeg tilføje til inf-filen nedenfor for at kunne installere det korrekt fra Windows 7?


Nuværende inf-fil:


;************************************************************
; Windows USB CDC ACM Setup File
; Copyright (c) 2000 Microsoft Corporation

; Version v1.1, updated 17 April 2013

[Version]
Signature="$Windows NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=\%MFGNAME\%
LayoutFile=layout.inf
CatalogFile=\%MFGFILENAME\%.cat
DriverVer=11/15/2007,5.1.2600.0

[Manufacturer]
\%MFGNAME\%=DeviceList, NTamd64

[DestinationDirs]
DefaultDestDir=12

;------------------------------------------------------------------------------
;  Windows 2000/XP/Vista-32bit Sections
;------------------------------------------------------------------------------

;DEFAULT SECTION ADDED
;---------------------------------------------
[DefaultInstall.nt]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles.nt
AddReg=DriverInstall.nt.AddReg

[DefaultInstall.nt.Services]
AddService=usbser, 0x00000002, DriverService.nt
;---------------------------------------------

[DriverInstall.nt]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles.nt
AddReg=DriverInstall.nt.AddReg

[DriverCopyFiles.nt]
usbser.sys,,,0x20

[DriverInstall.nt.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,\%DRIVERFILENAME\%.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

[DriverInstall.nt.Services]
AddService=usbser, 0x00000002, DriverService.nt

[DriverService.nt]
DisplayName=\%SERVICE\%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=\%12\%\%DRIVERFILENAME\%.sys

;------------------------------------------------------------------------------
;  Vista-64bit Sections
;------------------------------------------------------------------------------

;DEFAULT SECTION ADDED
;---------------------------------
[DefaultInstall.NTamd64]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles.NTamd64
AddReg=DriverInstall.NTamd64.AddReg

[DefaultInstall.NTamd64.Services]
AddService=usbser, 0x00000002, DriverService.NTamd64
;----------------------------------

[DriverInstall.NTamd64]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles.NTamd64
AddReg=DriverInstall.NTamd64.AddReg

[DriverCopyFiles.NTamd64]
\%DRIVERFILENAME\%.sys,,,0x20

[DriverInstall.NTamd64.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,\%DRIVERFILENAME\%.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

[DriverInstall.NTamd64.Services]
AddService=usbser, 0x00000002, DriverService.NTamd64

[DriverService.NTamd64]
DisplayName=\%SERVICE\%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=\%12\%\%DRIVERFILENAME\%.sys


;------------------------------------------------------------------------------
;  Vendor and Product ID Definitions
;------------------------------------------------------------------------------
; When developing your USB device, the VID and PID used in the PC side
; application program and the firmware on the microcontroller must match.
; Modify the below line to use your VID and PID.  Use the format as shown below.
; Note: One INF file can be used for multiple devices with different VID and PIDs.
; For each supported device, append ",USBVID\_xxxx&PID\_yyyy" to the end of the line.
;------------------------------------------------------------------------------
[SourceDisksFiles]
[SourceDisksNames]
[DeviceList]
\%linux.gserial\%=DriverInstall, USBVID\_1FC9&PID\_816A, USBVID\_1FC9&PID\_816A&MI\_00

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

;------------------------------------------------------------------------------
;  String Definitions
;------------------------------------------------------------------------------
;Modify these strings to customize your device
;------------------------------------------------------------------------------
[Strings]
MFGFILENAME="c500"
DRIVERFILENAME ="usbser"
MFGNAME="Rinstrum Pty Ltd"
INSTDISK="Rinstrum USB Gadget Serial Driver Installer"
linux.gserial="Rinstrum USB Gadget Serial"
SERVICE="USB RS-232 Emulation Driver"


Hvis jeg derefter bruger kommandoen RUNDLL32.EXE SETUPAPI.DLL, InstallHinfSection DefaultInstall 132 c500.inf på kommandolinjen jeg 'm blev bedt om fejlen' Installation mislykkedes '.

Bedste reference


Jeg har lavet masser af usbser.sys-baserede drivere, der arbejder på Windows 7. Her er et eksempel: https://github.com/pololu/p-star-examples/blob/master/drivers/p-star-serial .inf [3]


Jeg tror, ​​du behøver ikke have din 'DriverCopyFiles.nt' sektion og referencerne til den. Se på driveren, jeg linkede til ovenfor, der viser, hvordan man henviser til en 'FakeModemCopyFileSection' i stedet.


En ting, der ser fisket ud om din, er at du valgte at lave 'usbser' af en streng i 'Strings' sektionen. Jeg ser virkelig ikke ud af det, og den hvide plads, der er nær til definitionen af ​​denne streng, er ødelagt. Du kan bare skrive 'usbser' på de steder, hvor den bruges.