Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Установка драйвера для USB устройства  (Прочитано 10119 раз)
0 Пользователей и 1 Гость смотрят эту тему.
secretland
Гость
« : 05-02-2010 13:32 » 

День добрый!

Есть разрабатываемое USB устройство, для него написан свой драйвер, для установки драйвера написан inf файл.
Подключаем устройство первый раз, ОС требует драйвер - указываем наш inf файл, ОС его кушает, драйвер ставится и все корректно работает.
Но есть определенное неудобство - на каждый новый экземпляр нашего устройства ОС требует драйвер. Каким макаром нужно установить драйвер,
 чтоб ОС не требовала драйвера каждый раз когда подключается новый экземпляр нашего устройства? по типу того как винда подставляет USBSTOR.sys для флешек...

OC - win2k/xp
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 05-02-2010 13:39 » 

inf в студию!)

ЗЫ на чем контроллер USB собран?
« Последнее редактирование: 05-02-2010 13:42 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
secretland
Гость
« Ответ #2 : 08-02-2010 12:03 » 

inf в студию!)

генерировал Compuware Driver Studio
Код:
;--------- Version Section ---------------------------------------------------

[Version]
Signature="$WINDOWS NT$"
Class=DeviceUSB
ClassGUID={03CE427C-41ED-4545-A9A3-E00669890CD2}
Provider=%Provider%
DriverVer=11/7/2009,1.00.0000
CatalogFile=DeviceUSB.cat

[ControlFlags]
; Pnp drivers should not be installable via non-PnP hardware dialogs
ExcludeFromSelect = *

;--------- ClassInstall/ClassInstall32 Section -------------------------------

; Not necessary if using a standard class

; 9X Style
[ClassInstall]
Addreg=DeviceUSBClassAddReg

; NT Style
[ClassInstall32]
Addreg=DeviceUSBClassAddReg

[DeviceUSBClassAddReg]
;reg-root,[subkey],[value-entry-name],[flags],[value]
HKR,,,%REG_SZ%,%DeviceClassName%
HKR,,Icon,,"-18"
HKR,,DeviceCharacteristics,%REG_DWORD%,0x100                    ; FILE_DEVICE_SECURE_OPEN
HKR,,Security,,"D:P(A;;GR;;;WD)(A;;GA;;;SY)(A;;GA;;;BA)"        ; generic read - everybody
                                                                ; generic all access - system and admin

;--------- DestinationDirs Section -------------------------------------------

[DestinationDirs]
DefaultDestDir = 10
DeviceUSB_Files_Driver = 12


;--------- SourceDiskNames and SourceDiskFiles Section -----------------------
; These sections identify source disks and files for installation.

[SourceDisksNames]
1 = %DiskId1%,,,""

[SourceDisksFiles]
DeviceUSB.sys  = 1,,


;--------- Manufacturer and Models Sections ----------------------------------

[Manufacturer]
%MfgName% = DeviceUSB_Mfg

[DeviceUSB_Mfg]
; DisplayName               Section           DeviceId
%DeviceUSB_DeviceDesc%=DeviceUSB_DDI, USB\VID_03EB&PID_6136

;---------- DDInstall Sections -----------------------------------------------
; --------- Windows 98 -----------------

; Experimentation has shown that DDInstall root names greater than 19 characters
; cause problems in Windows 98

[DeviceUSB_DDI]
CopyFiles=DeviceUSB_Files_Driver
AddReg=DeviceUSB_9X_AddReg

[DeviceUSB_9X_AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,DeviceUSB.sys
HKR,,Description,,%DeviceUSB_DeviceDesc%

; --------- Windows NT -----------------

[DeviceUSB_DDI.NT]
CopyFiles=DeviceUSB_Files_Driver

[DeviceUSB_DDI.NT.Services]
Addservice = DeviceUSB, %FLG_ADDREG_NOCLOBBER%, DeviceUSB_Service

[DeviceUSB_DDI2.NT]
CopyFiles=DeviceUSB_Files_Driver

[DeviceUSB_DDI2.NT.Services]
Addservice = DeviceUSB, %FLG_ADDREG_NOCLOBBER%, DeviceUSB_Service

; --------- Service ----------------------

[DeviceUSB_Service]
DisplayName    = %DeviceUSB_SvcDesc%
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_DEMAND_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %12%\DeviceUSB.sys
LoadOrderGroup = Extended Base

; --------- Files ----------------------

[DeviceUSB_Files_Driver]
DeviceUSB.sys,,,2

;--------- Strings Section ---------------------------------------------------

[Strings]
Provider = "Contora Ltd"
MfgName = "Contora Ltd"
DeviceUSB_DeviceDesc = "DeviceUSB Device"
DeviceClassName="Class for DeviceUSB devices"
DeviceUSB_SvcDesc = "Driver for DeviceUSB Device"
DiskId1 = "DeviceUSB Device Installation Disk #1"

REG_SZ                      = 0x00000000
REG_MULTI_SZ                = 0x00010000
REG_EXPAND_SZ               = 0x00020000
REG_BINARY                  = 0x00000001
REG_DWORD                   = 0x00010001
REG_NONE                    = 0x00020001

SERVICE_KERNEL_DRIVER       = 0x00000001
SERVICE_FILE_SYSTEM_DRIVER  = 0x00000002
SERVICE_ADAPTER             = 0x00000004
SERVICE_RECOGNIZER_DRIVER   = 0x00000008

SERVICE_BOOT_START          = 0x0
SERVICE_SYSTEM_START        = 0x1
SERVICE_AUTO_START          = 0x2
SERVICE_DEMAND_START        = 0x3
SERVICE_DISABLED            = 0x4

SERVICE_ERROR_IGNORE        = 0x00000000
SERVICE_ERROR_NORMAL        = 0x00000001
SERVICE_ERROR_SEVERE        = 0x00000002
SERVICE_ERROR_CRITICAL      = 0x00000003

FLG_ADDREG_NOCLOBBER        = 0x00000002
FLG_ADDREG_DELVAL           = 0x00000004
FLG_ADDREG_APPEND           = 0x00000008
FLG_ADDREG_KEYONLY          = 0x00000010
FLG_ADDREG_OVERWRITEONLY    = 0x00000020
FLG_ADDREG_64BITKEY         = 0x00001000
FLG_ADDREG_KEYONLY_COMMON   = 0x00002000
FLG_ADDREG_32BITKEY         = 0x00004000

Цитата: Ochkarik
ЗЫ на чем контроллер USB собран?
at90usb646
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 08-02-2010 18:33 » 

видимо дело в серийном номере и возможно цифровой подписи драйвера.

посмотрите ветку
https://forum.shelek.ru/index.php/topic,6990.0.html?all
там нечто подобное обсуждалось... правда я пока не знаю как к вашему случаю применить.

ЗЫ попробуйте ключ SilentInstall для inf файла в разделе SetupClassAddReg
Код:
[SetupClassAddReg]
...
HKR,,SilentInstall,,1
...
http://msdn.microsoft.com/en-us/library/ms794537.aspx
« Последнее редактирование: 08-02-2010 18:46 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 11-02-2010 19:45 » 

получилось что нибудь?
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
secretland
Гость
« Ответ #5 : 01-03-2010 11:52 » 

получилось что нибудь?

в лоб вот это
Код:
[SetupClassAddReg]
...
HKR,,SilentInstall,,1
...
не прокатывает...
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 01-03-2010 13:46 » 

https://forum.shelek.ru/index.php/topic,6990.msg109582.html#msg109582
Цитата
На USB визард установки нового устройства на другом порту хаба выдается  в том случае, если USB-устройство не имеет серийного номера (используется геограифическая адресация для енумерации). Соответственно в реестре создаются новые ветки для всех портов хабов. Если SN есть - установка однократная и в реестре одна ветка, енумерация по SN.
у вас он есть?
« Последнее редактирование: 01-03-2010 13:47 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines