2017-01-30 28 views
0

ОБНОВЛЕНИЕ:. В ответ на этот вопрос мне удалось заставить это работать в Windows 7. С тех пор я понял, что Windows 10 устанавливает, но переопределяет мой драйвер с помощью OEM USB последовательный драйвер. Пожалуйста, смотрите: Trouble installing custom inf in Windows 10 Professional. Windows overrides it with OEM driverInf-файл не может найти usbser.sys только в Windows 7

-

Я попытался сделать Inf файл, который устанавливает USB-устройства с последовательным интерфейсом, используя стандартные окна USB-последовательный драйвер. Этот файл успешно устанавливает драйвер в Windows 8.1 и Windows 10, но сбой в Windows 7 32bit и Windows 7 64 бит. Я попытался щелкнуть правой кнопкой мыши установку драйвера с рабочего стола (установка по умолчанию). В первый раз, когда я попытался это сделать, мне была представлена ​​ошибка «Файл inf, который вы предложили, не поддерживает этот метод установки». Я добавил разделы defaultInstall в файл inf. После этого ошибка исчезла, но система не смогла найти usbser.sys. «Файл« usbser.sys »на windows cd необходим».

Что нужно добавить к файлу inf ниже, чтобы сделать это успешно установленным из Windows 7?

Текущий инф файл:

;************************************************************ 
; 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 ",USB\VID_xxxx&PID_yyyy" to the end of the line. 
;------------------------------------------------------------------------------ 
[SourceDisksFiles] 
[SourceDisksNames] 
[DeviceList] 
%linux.gserial%=DriverInstall, USB\VID_1FC9&PID_816A, USB\VID_1FC9&PID_816A&MI_00 

[DeviceList.NTamd64] 
%linux.gserial%=DriverInstall, USB\VID_1FC9&PID_816A, USB\VID_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" 

Если я затем использовать команду RUNDLL32.EXE SETUPAPI.DLL, InstallHinfSection DefaultInstall 132 c500.inf в командной строке я побудила с ошибкой «Установка не удалась».

ответ

0

Я сделал много Usbser.sys на основе драйверов, которые работают на Windows 7. Вот пример: https://github.com/pololu/p-star-examples/blob/master/drivers/p-star-serial.inf

Я думаю, что вам не нужно иметь свой раздел «DriverCopyFiles.nt» и ссылки на него. Посмотрите на приведенный выше драйвер, который показывает, как ссылаться на «FakeModemCopyFileSection».

Кроме того, вы считаете, что вы решили сделать «usbser» строкой в ​​разделе «Строки». Я действительно не вижу смысла в этом, и пробелы рядом с определением этой строки испорчены. Вы можете просто написать «usbser» в тех местах, где он используется.

+0

Благодарим вас за ответ. Я заметил, что вы вызвали ваш inf-файл непосредственно в разделе CopyFiles. Разве это не плохая практика? «Примечание. Директива CopyFiles не должна ссылаться на файл каталога или сам файл INF, а SetupAPI автоматически копирует эти файлы». - https://msdn.microsoft.com/en-us/windows/hardware/drivers/ifs/creating-an-inf-file-for-a-file-system-filter-driver –

+0

Посмотрите еще раз, я не есть директива 'CopyFiles', которая ссылается на мой собственный файл INF. –

+0

Прошу прощения. Я, кажется, добился успеха в Win7 32 после вашего шаблона. Теперь попробуйте другую ОС. –