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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Не инсталлируется XP-драйвер на Windows7  (Прочитано 21095 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Didalek
Интересующийся

ru
Offline Offline

« : 23-04-2012 05:28 » 

Несколько лет назад написал собственный драйвер для некоего serial устройства.
С тех пор отошел от написания драйверов, но сейчас стал актуальным вопрос работы этого устройства под Windows 7.
Попробовал поставить свой драйвер, указал путь к дистрибутиву. После чего система несколько минут пытается инсталлировать драйвер (висит "Installing driver Software").
В итоге всё это заканчивается плачевно:  Windows found driver but encountered an error while attemtping to install it.
Не понимаю какого события он ждал всё это время?
В сам драйвер, как я понимаю, входа не было (DbgView молчит)
После всего этого смотрю в системных каталогах:
 INF-файл OEMxx.INF в каталоге INF присутствует,
 а сам SYS-файл драйвера не копируется в каталог E:\Windows\System32\drivers\.
Возможно, нужно что-то изменить в INF-файле (что-то специфичное для Win7)?
Код: (INI)
;;;;;;;;;;;;; INF Fail ;;;;;;;;;;;;;;;;;;;;;;;;;

[Version]
Signature   = "$Windows NT$"
Class=MyClass
ClassGuid={C4E89B44-B736-45e6-9CCE-963BB01B9044}
Provider=%String0%
DriverVer=18/04/2012,3.0.0.0

[ClassInstall32]
AddReg=MyClass.AddReg
CopyFiles=nbsxProp.copy

[DestinationDirs]
DefaultDestDir=12
nbsxProp.copy=11

[Manufacturer]
%String1%=ABCTechnology

[ABCTechnology]
%String6%=NBS-40_16C950, PCI\VEN_135E&DEV_7107, PCI\VEN_1415&DEV_9505

[NBS-40_16C950.NT]
CopyFiles=nbs40.copy
AddReg=nbs40.addreg

[nbs40.copy]
MyDriver.sys,,,2

[nbsxprop.copy]
nbsxprop.dll,,,2

[NBS40.AddReg]
HKR,,EnumPropPages32,0,"nbsxprop.dll,NbsxPropPage"

[MyClass.AddReg]
HKR,,,0,%MyClassClassName%
HKR,,Icon,,-5            ; same icon as for network cards
HKR,,Installer32,,"nbsxprop.dll,NbsxClassInstaller"


[nbs40.LogConfig]
ConfigPriority=HARDRECONFIG
IOConfig=8@100-3ff%fff8(3ff::)
IRQConfig=S:2,3,4,5,6,7

[NBS-40_16C950.NT.HW]
AddReg=NBS40_16C950.AddReg

[NBS40_16C950.AddReg]
HKR,,CrystalFrequency,1,00,08,07,00  ; 14.7456 MHz (Max=460800*2)
HKR,,TransmitToggle,1,01             ; RTS(sw)
HKR,,UartType,1,01                   ; Oxford 16C950 UART

[NBS-40_16C950.NT.Services]
AddService = MyDriver, 2 , nbsx_service , nbsx_eventlog

[nbsx_service]
DisplayName    = "NbsX Service"
ServiceType    = 1   ; KERNEL_DRIVER
StartType      = 3   ; DEMAND_START
ErrorControl   = 1   ; ERROR_NORMAL
ServiceBinary  = %12%\MyDriver.sys

[nbsx_eventlog]
AddReg = nbsx_eventlog_Addreg

[nbsx_eventlog_Addreg]
HKR,,EventMessageFile,0x00020000,"%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\MyDriver.sys"
HKR,,TypesSupported,0x00010001,7


[SourceDisksNames]
1="ABC Technology NBS-X Device Driver Disk",disk1,

[SourceDisksFiles]
MyDriver.sys=1
nbsxprop.dll=1

[Strings]
String0="ABC Technology"
String1="ABC Technology"
String6="NBS-40(16C950 UART)"
MyClassClassName="ABC Nine-Bit Serial Adapters"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
« Последнее редактирование: 23-04-2012 07:53 от Джон » Записан
zubr
Гость
« Ответ #1 : 23-04-2012 05:33 » 

В 7-ке надо устанавливать драйвера Run as admin
Записан
Didalek
Интересующийся

ru
Offline Offline

« Ответ #2 : 23-04-2012 05:39 » 

В 7-ке надо устанавливать драйвера Run as admin

Так у меня же нет установщика, я только указываю путь к INF файлу. As admin я указываю при запуске Device manager.
Записан
Ochkarik
Модератор

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

« Ответ #3 : 23-04-2012 07:04 » 

а что в системном логе?
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Didalek
Интересующийся

ru
Offline Offline

« Ответ #4 : 23-04-2012 07:23 » 

а что в системном логе?

В системном логе ничего, а в Application log вижу:

Fault bucket , type 0
Event Name: PnPDriverInstallError
Response: Not available
Cab Id: 0

Problem signature:
P1: x86
P2: 000005B4
P3: nbsxnt.inf
P4: 1088c674baccb1ceb3e576c60e6261643265f381
P5: NBS-40_16C950
P6:
P7:
P8:
P9:
P10:

Attached files:

These files may be available here:
E:\Users\MAR\AppData\Local\Microsoft\Windows\WER\ReportQueue\NonCritical_x86_4f49f4d88d69caccd61775928b8c8f949b756c5_0a79d165

Analysis symbol:
Rechecking for solution: 0
Report Id: 15f05c4a-8d14-11e1-bfbb-005056c00008
Report Status: 4
Записан
Ochkarik
Модератор

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

« Ответ #5 : 23-04-2012 07:36 » 

попробуйте исправить
Цитата
Summary of ".\test.inf"
Total Errors:       3
Total Warnings:  5

Errors:
Line 3: (E22.1.1081) Directive: CatalogFile required (and must not be blank) in section [Version] for WHQL digital signature.
Line 8: (E22.1.1066) Bad value for Month in DriverVer.
Line 8: (E22.1.1067) DriverVer date is in the future

Warnings:
Line 0: (W22.1.9998) NOTE: The ChkInf tool does not verify the WDF sections and directives of the INF file.
Line 0: (W22.1.2212) No Copyright information found.
Line 5: (W22.1.2215) Class MyClass (ClassGUID {C4E89B44-B736-45e6-9CCE-963BB01B9044}) is unrecognized.
Line 43: (W22.1.2083) Section [NBS40.LOGCONFIG] not referenced
Line 75: (W22.1.2023) Use a string token, and put localizable text in the [Strings] section.
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Didalek
Интересующийся

ru
Offline Offline

« Ответ #6 : 23-04-2012 07:51 » 

Дату исправил. Но cat-файла у меня нет, т.к. драйвер не сертифицирован. При установке, я подтверждаю чтобы инсталлировалось не взирая на отсутствие сигнатуры.
Записан
Ochkarik
Модератор

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

« Ответ #7 : 23-04-2012 16:08 » 

я смотрю ресурсы жестко прописаны... может конфликтует? попробуйте убрать лишнее(включая страницу свойств), хоть не заработает но пусть хоть в DriverEntry зайдет. кстати библиотеку копирует?
без cat - у меня работает в семерке.
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Didalek
Интересующийся

ru
Offline Offline

« Ответ #8 : 24-04-2012 03:08 » 

я смотрю ресурсы жестко прописаны... может конфликтует? попробуйте убрать лишнее(включая страницу свойств), хоть не заработает но пусть хоть в DriverEntry зайдет. кстати библиотеку копирует?
без cat - у меня работает в семерке.

Я извиняюсь за путаницу. Перед тем как выложить INF-файл я его немного отредактировал, убрав лишние устройства. И случайно прописал чужие ресурсы. Жесткие ресурсы относятся к другому устройству (ISA-шному). Инсталлер класса (nbsxprop.dll) прекрасно копируется в System32 и работает. Почему не копируется MyDriver.sys непонятно. Он должен копироваться в System32/Drivers ( DefaultDestDir=12).
Хочется понять чего ждет система в течение ~3 минут перед тем как сказать что истек таймаут и " Windows found driver but encountered an error while attemtping to install it."
Все это прекрасно инсталлируется в Windows XP.
Записан
Ochkarik
Модератор

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

« Ответ #9 : 24-04-2012 06:18 » 

чет я сам теперь запутался) с работы посмотрю еще раз...

Добавлено через 2 часа, 39 минут и 33 секунды:
а nbsx_eventlog убрать? и вообще до минимума-минимума.
« Последнее редактирование: 24-04-2012 08:57 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Didalek
Интересующийся

ru
Offline Offline

« Ответ #10 : 24-04-2012 09:41 » 

а nbsx_eventlog убрать? и вообще до минимума-минимума.
Нет, ничего не помогает (((
Записан
Ochkarik
Модератор

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

« Ответ #11 : 24-04-2012 11:11 » 

хм... мож... у файлов атрибуты какие нить стоят?
перекомпилить новым компилятором... если код остался живой
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Didalek
Интересующийся

ru
Offline Offline

« Ответ #12 : 26-04-2012 06:54 » 

На самом деле, файл драйвера, оказывается копируется в нужное место. Видать, я его сдуру искал после анисталла.
Остался только вопрос что за таймаут истекает при инсталляции.
Записан
Ochkarik
Модератор

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

« Ответ #13 : 26-04-2012 09:12 » 

тогда...
DbgView  мог просто не показать) по моему, в win7 он по умолчанию отладку не кажет - настраивать надо.
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
zubr
Гость
« Ответ #14 : 26-04-2012 09:37 » 

DbgView работает в Win7. Просто по умолчанию там опция Capture Kernel отключена.
Записан
Ochkarik
Модератор

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

« Ответ #15 : 26-04-2012 10:31 » 

я и говорю... что настраивать) эк я сразу не вспомнил...
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Didalek
Интересующийся

ru
Offline Offline

« Ответ #16 : 26-04-2012 12:33 » 

я и говорю... что настраивать) эк я сразу не вспомнил...
DbgView запускал с Capture Kernel. И драйвер собран Сhecked.
Но сообщений  из DriverEntry не видно. Собирал с помощью WindowsXP DDK
Записан
Ochkarik
Модератор

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

« Ответ #17 : 26-04-2012 21:48 » 

http://www.osronline.com/article.cfm?id=295
Цитата
In Vista, DbgPrint and KdPrint are mapped to component "DPFLTR_DEFAULT_ID" and level "DPFLTR_INFO_LEVEL".  Of course, in Vista, xxx_INFO_LEVEL output is disabled by default.  So, by default, your DbgPrint/KdPrint doesn't get sent to the kernel debugger.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter]
"DEFAULT"=dword:0000000F
« Последнее редактирование: 26-04-2012 21:53 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Didalek
Интересующийся

ru
Offline Offline

« Ответ #18 : 27-04-2012 06:13 » 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter]
Не нашел такого ключа в семерке.

Добавлено через 10 минут и 10 секунд:
Переписал ERROR_LEVEL вместо INFO. Не помогло.
« Последнее редактирование: 27-04-2012 06:23 от Didalek » Записан
Ochkarik
Модератор

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

« Ответ #19 : 27-04-2012 08:09 » 

http://msdn.microsoft.com/en-us/library/windows/hardware/ff551519(v=vs.85).aspx
- написано, что надо создать самому. для ERROR_LEVEL==0- маска все равно должна быть как минимум 1.
я не понял что там в семерке, по дефолту.

в любом случае - если единственный критерий загрузки драйвера - его отладочные сообщения...
то ну соберите  пример из одной DriverEntry и загрузите вручную. будет там отладочный вывод или нет?
Записан

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

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

« Ответ #20 : 21-05-2012 21:06 » 

Есть более верочный способ - INT 3  Улыбаюсь
Такое точно не пропустишь.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines