Перейти к содержанию
    

Проблема CyUSB.sys и 64-х битных Windows

to Konst777

Относительно WinUSB.inf и WinUsb.sys :

Правильно я понял, что я должен скорректировать (добавить) в файл WinUSB.inf , находящийся в дирректории с:\Windows\inf\

строки касающиеся моего устройства, т.е. :

 

[Version]

Signature = "$Windows NT$"

Class = USBDevice

ClassGUID = {88BAE032-5A81-49f0-BC3D-A4FF138216D6}

Provider = %ManufacturerName%

CatalogFile = WinUSBInstallation.cat

DriverVer=09/04/2012,13.54.20.543

 

; ========== Manufacturer/Models sections ===========

 

[Manufacturer]

%ManufacturerName% = Standard,NTamd64

 

[standard.NTamd64]

%DeviceName% =USB_Install, USB\VID_0547&PID_1002

 

; ========== Class definition ===========

 

[ClassInstall32]

AddReg = ClassInstall_AddReg

 

[ClassInstall_AddReg]

HKR,,,,%ClassName%

HKR,,NoInstallClass,,1

HKR,,IconPath,%REG_MULTI_SZ%,"%systemroot%\system32\setupapi.dll,-20"

HKR,,LowerLogoVersion,,5.2

 

; =================== Installation ===================

 

[uSB_Install]

Include = winusb.inf

Needs = WINUSB.NT

 

[uSB_Install.Services]

Include =winusb.inf

Needs = WINUSB.NT.Services

 

[uSB_Install.HW]

AddReg=Dev_AddReg

 

[Dev_AddReg]

HKR,,DeviceInterfaceGUIDs,0x10000,"{9f543223-cede-4fa3-b376-a25ce9a30e74}"

 

; [DestinationDirs]

; If your INF needs to copy files, you must not use the DefaultDestDir directive here.

; You must explicitly reference all file-list-section names in this section.

 

; =================== Strings ===================

 

[strings]

ManufacturerName=""

ClassName="Universal Serial Bus devices"

DeviceName="My USB"

REG_MULTI_SZ = 0x00010000

 

Посмотрите, пожалуйста, этих изменений достаточно?

 

2. Этот inf файл я корректирую прямо в дирректории с:\Windows\inf\ ?

или нужно поместить его в свою дирректорию?

 

3. WinUsb.sys файл возьмется автоматически родной из Windows или его тоже нужно создавать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Этот приём не работает после какого-то там обновления. :( Тоже использовали, а потом перестало работать...

Да ну, а как же разработчики драйверов? Теперь все поголовно обязаны платить Certification Authorities?

Попробовал использовать драйвер CyUSB (ver. 3.4), который я когда-то подписал цифровой подписью для тестирования драйверов, под Windows 8.1 x64. Все работает ;)

 

...В итоге, накопали некий скрипт,... Так и живём.

Ну, так выложите скрипт. Осчастливьте народ.

 

to Konst777

Относительно WinUSB.inf и WinUsb.sys :

Правильно я понял, что я должен скорректировать (добавить) в файл WinUSB.inf , находящийся в дирректории с:\Windows\inf\...

Не нужно трогать WinUSB.inf и WinUsb.sys. Вообще. В этом и преимущество. To identify a USB device as a WinUSB device, the device firmware must have these Microsoft OS Descriptors. Посмотрите пример, который я выложил в теме Подскажите по winUSB. И еще, очень полезно почитать USB Stack and Microsoft OS Descriptors.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу прощения, если задаю вопросы про очевидное.

Я читаю WinUSB (Winusb.sys) Installation ( http://msdn.microsoft.com/en-us/library/wi...5%29.aspx#howto )

Дохожу до пункта How to create a driver package that installs Winusb.sys :

 

1. WinUSB co-installer (Winusbcoinstaller.dll) - беру соответствующее dll - WinUsbCoInstaller.dll

2. KMDF co-installer (WdfcoinstallerXXX.dll) - беру wdfcoinstaller01009.dll

3. An .inf file that installs Winusb.sys as the device's function driver. For more information, see Writing an .Inf File for WinUSB Installation. - создаю myusb.inf файл со строками приведенными мной ранее.

4. A signed catalog file for the package. This file is required to install WinUSB on x64 versions of Windows Vista.

- А вот с этим пунктом непонятно, где взять проверенный каталог файл для меня, откуда?!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да ну, а как же разработчики драйверов? Теперь все поголовно обязаны платить Certification Authorities?

Попробовал использовать драйвер CyUSB (ver. 3.4), который я когда-то подписал цифровой подписью для тестирования драйверов, под Windows 8.1 x64. Все работает ;)

Не берусь судить, не знаю тему досконально. Пробовали разные способы, в т.ч. и подписыванием, оно кончалось BSOD'ами.

 

Ну, так выложите скрипт. Осчастливьте народ.

Он легко гуглится. Впрочем, мне не жалко. :)

srdp.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

- А вот с этим пунктом непонятно, где взять проверенный каталог файл для меня, откуда?!

 

1) сходить туда и заплатить бабла. https://www.globalsign.com/ru-ru/podpis-kod...thenticode.html

2) получить сертификат

3) выполнить для Вашего INF следующие команды (в любой среде WDK)

 

c:\WinDDK\8.0\bin\x86\inf2cat /driver:<path_to_driver> /os:2000,XP_X86,Server2003_X86,Vista_X86,XP_X64,Server2003_X64,Vista_X64,Server2
003_IA64,7_X64,7_X86,Server2008_X64,Server2008_IA64,Server2008_X86,Server2008R2_
X64,Server2008R2_IA64,8_X86,8_X64,Server8_X64

signtool sign /v /s my /n <certificate_name> /ac cert/mscv-gs.pem /t http://timestamp.globalsign.com/scripts/timstamp.dll <path_to_driver>\<drivername>.cat

 

соотв. <path_to_driver> <certificate_name> и <drivername> подставить какие надо

 

Все, наслаждаться драйвером. Платить денег надо только за тот срок, когда требуется подписывание дров. Пользоваться потом подписанными можно неограниченно.

 

ну и winddk 8 нужен чтобы в CAT файл прописать вин8, а signtool все равно какой. я собираю дрова и под 8, и под 8.1 старым добрым WDK 7600, а из 8-го взял ТОЛЬКО inf2cat и ничего более.

 

UPD:

 

cert/mscv-gs.pem - этого надо скачать оттуда - http://msdn.microsoft.com/en-us/library/wi...v=vs.85%29.aspx , там же полный список всех тех, у кого можно покупать сертификат, чтобы он подошел для KMCS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) сходить туда и заплатить бабла. https://www.globalsign.com/ru-ru/podpis-kod...thenticode.html

Тогда я совсем запутался - в чем преимущество применения WinUsb.sys вместо CyUsb.sys (если я все равно должен заплатить )?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Суть такова - если Вам надо изменить хоть одну букву в INF файле, или написать свой - тогда надо платить за сертификат, какой бы драйвер не был.

 

Если Вас устраивает готовый фирменный INF, подписанный кем то, и вы подделываетесь под VID/PID (или стандартный класс), указанный в нем, то тогда (и только тогда) Вам сертификат покупать не надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда я совсем запутался - в чем преимущество применения WinUsb.sys вместо CyUsb.sys (если я все равно должен заплатить )?

Вы слишком углубляетесь в прошлое WinUSB. В самом начале WinUSB был просто еще одним универсальным драйвером для устройств USB. Так же как и CyUsb.sys. В настоящее время, преимущество WinUsb.sys в том, что не нужно вносить изменения в WinUsb.inf и подписывать драйвер. Попробуйте вначале прочитать WCID Devices. Там описана история развития WinUSB и требования к firmware для устройств USB, чтобы разработчику устройства USB не нужно было подписывать драйвер (модификацию WinUsb.inf), а пользователю не нужно было устанавливать драйвер. В теме USB Stack and Microsoft OS Descriptors дан ответ на вопрос: "Почему Windows не подключает мое устройство USB автоматически, хотя мое firmware отвечает на запросы MS OS Descriptors?". В этой теме есть ссылка на тему WCID Devices.

 

...и вы подделываетесь под VID/PID (или стандартный класс), указанный в нем, то тогда (и только тогда) Вам сертификат покупать не надо.

При использовании WinUSB firmware может иметь произвольный VID/PID. Важно, чтобы firmware отвечало на запросы MS OS Descriptors.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяюсь. Работаем с FTDI. На 32-х битных системах всё отлично работает. На 64-х битной восьмёрке тоже хорошо.

 

А на 64-х битной 7-ке постоянно просит цифровую подпись и админские права. Ставим. Стоит просто перезагрузить - и опять "неизвестное устройство". Иногда даже ПК не с админскими правми загружаться не хочет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как дела на 8-ке?

Установка неподписанных драйверов в Windows 8.1

http://www.windxp.com.ru/win8/article_44.htm

Кто-нибудь пробовал?

В 7-ке подобная функция заявлена, но не работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...