Jump to content

    
Sign in to follow this  
pecec

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

Recommended Posts

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 или его тоже нужно создавать?

Share this post


Link to post
Share on other sites
Этот приём не работает после какого-то там обновления. :( Тоже использовали, а потом перестало работать...

Да ну, а как же разработчики драйверов? Теперь все поголовно обязаны платить 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.

Share this post


Link to post
Share on other sites

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

Я читаю 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.

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

 

Share this post


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

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

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

 

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

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

srdp.zip

Share this post


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

 

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

Share this post


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

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

 

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites
Тогда я совсем запутался - в чем преимущество применения 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.

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this