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

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

ru
Offline Offline

« : 11-02-2010 07:33 » 

Портирую драйвер PCI карточки для Windows x64. Сборка прошла успешно (Windows Vista & Windows Server Longhorn x64 из DDK 6000).
Пробую установить на Vista x64 Ultimate. Загружаюсь с выключенной проверкой цифровой подписи. На всякий случай выполнил :

bcedit /set loadoptions DDISABLE_INTEGRITY_CHECKS

Драйвер не устанавливается. Сначала была ошибка о неверной строке в inf файле, потом ошибка секции установки службы в инф файле.
После последнего исправления  установщик пишет : "Драйвер не предназначен для работы на этой платформе. " Ошибка появляется после того, как система делает точку восстановления. То есть устройство опознается правильно.
inf проверил c помощью CHKINF -
Код:
Summary of "c:\inf\lir940pci.inf"
Total Errors:
   
1
Total Warnings:
   
5

Errors:
# Line 1: (E22.1.1081) Directive: CatalogFile required (and must not be blank) in section [Version] for WHQL digital signature.
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 6: (W22.1.2025) No value for Version (DriverVer=mm/dd/yyyy,version).
# Line 18: (W22.1.2023) Use a string token, and put localizable text in the [Strings] section.
# Line 40: (W22.1.2034) No destination dir was defined for this section. Your driver is being copied to the DefaultDestDir location specified (10,System32\Drivers).

Annotated INF:


; (W22.1.9998) NOTE: The ChkInf tool does not verify the WDF sections and directives of the INF file.
; (W22.1.2212) No Copyright information found.
[Version]
; (E22.1.1081) Directive: CatalogFile required (and must not be blank) in section [Version] for WHQL digital signature.
Signature=$CHICAGO$
Class = Multifunction
ClassGuid = {4d36e971-e325-11ce-bfc1-08002be10318}
Provider="SKBIS"
DriverVer=10/02/2009
; (W22.1.2025) No value for Version (DriverVer=mm/dd/yyyy,version).
;------------------------------------------------------------------------------
;  Standard INF sections
;------------------------------------------------------------------------------

[Manufacturer]
%MFGNAME%=DeviceList,NTamd64

[DestinationDirs]
DefaultDestDir=10,System32\Drivers

[SourceDisksNames]
1="SKBIS Install Disk",disk1
; (W22.1.2023) Use a string token, and put localizable text in the [Strings] section.

[SourceDisksFiles]
lir940pci.sys=1,,

[DeviceList.NTamd64]
%DESCRIPTION%=DriverInstall,PCI\VEN_0f0f&DEV_0f0f


;------------------------------------------------------------------------------
;  Windows 2000 Sections
;------------------------------------------------------------------------------

[DriverInstall.NTamd64]
CopyFiles=DriverCopyFiles






[DriverCopyFiles]
lir940pci.sys,,,2
; (W22.1.2034) No destination dir was defined for this section. Your driver is being copied to the DefaultDestDir location specified (10,System32\Drivers).


[DriverInstall.NTamd64.Services]
AddService=lir940pci,2,DriverService


[DriverService]
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%10%\system32\drivers\lir940pci.sys


[DriverInstall.NTamd64.hw]
AddReg=DriverHwAddReg

[DriverHwAddReg]
HKR,,SampleInfo,,""

;HKR,,FriendlyName,,"Lir 940/941 PCI "
;HKR,,SampleInfo,,"Lir 940/941 PCI Sample Info"


;------------------------------------------------------------------------------
;  String Definitions
;------------------------------------------------------------------------------

[Strings]
MFGNAME="SKBIS"
INSTDISK="Lir 940/941 PCI Disc"
DESCRIPTION="Lir 940/941 Pci interface "

Этот же inf при замене NTamd64 на NTx86 -  отлично устанавливается в Win XP, Vista, Win7 x86.
Подскажите, где ошибка ? ну или хотя бы в чем, inf - файле или драйвере ?

Записан
Ochkarik
Модератор

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

« Ответ #1 : 11-02-2010 17:43 » 

https://forum.shelek.ru/index.php/topic,12433.0.html
посмотрите... вдруг чего увидите)

а так.. вроде inf глазами проверил - нормальный. да, винда файл драйвера - копирует в System32\drivers ? если да, то думаю не в inf-e дело
кстати: "ServiceBinary  = %12%\XXX.sys" не проще ставить?)
опции компиляции/линкера правильные?
Записан

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

ru
Offline Offline

« Ответ #2 : 12-02-2010 06:49 » 

а так.. вроде inf глазами проверил - нормальный. да, винда файл драйвера - копирует в System32\drivers ? если да, то думаю не в inf-e дело
да, похоже не в inf дело, а в драйвере.
кстати: "ServiceBinary  = %12%\XXX.sys" не проще ставить?)
Изначально inf был сделан для всех систем, включая Win98. А там  %12% - вовсе не System32\Drivers
опции компиляции/линкера правильные?
не знаю. я запускаю Windows Vista and Windows Server Longhorn x64 Checked Build Environment из DDK 6000. Захожу в рабочий каталог и вызываю build.
Sources выглядит так :
Код:
TARGETNAME=lir940pci
TARGETPATH=obj
TARGETTYPE=DRIVER
DRIVERTYPE=WDM
#USE_PDB=1
SOURCES= DriverEntry.cpp \
ReadWrite.cpp \
stddcls.cpp \
driver.rc



« Последнее редактирование: 12-02-2010 06:52 от MikePol » Записан
Ochkarik
Модератор

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

« Ответ #3 : 12-02-2010 21:20 » 

1. покажите переменные окружения (команда set в командной строке, для заданной конфигурации)
2. попробуйте вручную
Цитата
/amd64    Build targets for the x64-based architecture.
или http://msdn.microsoft.com/en-us/library/ms792095.aspx
соответственно:
http://msdn.microsoft.com/en-us/library/ms792148.aspx
3. попробуйте собрать в студии...
http://alter.org.ua/ru/docs/nt_kernel/vc8_x64_proj/


PS собственно.... хотя вопрос чего еще там прописано(у меня дома нет DDK)...
http://msdn.microsoft.com/en-us/library/ms792186.aspx
Цитата
The following environment variables are automatically set through the SetEnv.bat file when the build environment is created:

_BUILDARCH
BASEDIR
BUILD_ALT_DIR
BUILD_DEFAULT
BUILD_DEFAULT_TARGETS
BUILD_MAKE_PROGRAM
BUILD_MULTIPROCESSOR
DDK_TARGET_OS
DDKBUILDENV
DEPRECATE_DDK_FUNCTIONS
NO_BINPLACE
NO_BROWSER_FILE
NTDEBUG
The following environment variables are not automatically set by using the SetEnv.bat file when the build environment is created, but can be created by using the set command:
AMD64_FLAGS
BINPLACE_LOG
BUILD_OPTIONS
CHECKED_ALT_DIR
PREFAST_ROOT

PPS до кучи ссылок по теме накидаю, чтобы были в одном месте по поводу использования утилиты Build.exe для компиляции драйверов Windows:
How to Use the Build Utilityhttp://msdn.microsoft.com/en-us/library/ms792419.aspx
Build Utility Command-Line Parameters:http://msdn.microsoft.com/en-us/library/ms791595.aspx
Using the SetEnv.bat Command Line:http://msdn.microsoft.com/en-us/library/ms792423.aspx
Build Utility Macros: http://msdn.microsoft.com/en-us/library/ms792095.aspx
Build Utility Environment Variableshttp://msdn.microsoft.com/en-us/library/ms792186.aspx
« Последнее редактирование: 12-02-2010 22:18 от Ochkarik » Записан

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

ru
Offline Offline

« Ответ #4 : 15-02-2010 08:08 » 

спасибо за ссылки.
в итоге проблему решил, собрав с помощью Windows Server 2003 x64 Checked Build Environment
А есть ли способ подписать драйвер как-нибудь ?
Записан
Ochkarik
Модератор

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

« Ответ #5 : 15-02-2010 19:02 » 

 к сожалению не разбирался подробно. из того что слышал краем уха:
1. для подписи нужен сертификат. данный сертификат стоит денег. что то порядка нескольких сотен в год. просто покупаетсяу либо у майкрософта, либо у компаний, перепродающих свой, и им подписывается.
не путать сертификат для подписи с сертификатом WHQL (Windows Hardware Quality Lab) - это более серьезная сертификация у самого майкрософта!
а дальше, (я так думаю!) в случае, если если в микрософт будут приходить жалобы (отчеты по BSOD) на драйвер подписанный таким сертификатом, то они просто отзывают сертификат на данный конкретный драйвер и рассылают в качестве очередного windows update. глюкавый драйвер больше не грузится - все пользователи счастливы)
где то я видел кучку ссылок на покупку сертификата - думаю найдете.  то ли на wasm-е то-ли еще где...

2. еще есть "кросс сертификат" от самого майкрософта. Скачивается он, я так понял, бесплатно с их сайта. возможно он только для целей отладки, может быть и нет. покопайте в этом направлении, возможно в этом будет счастье! Ага

но все это я так.. на уровне слухов слышал)

PS если насчет крос-сертификата
http://www.microsoft.com/whdc/winlogo/drvsign/crosscert.mspx
что нибудь получится, отпишитесь пожалуйста, буду очень благодарен)

http://www.google.ru/search?hl=ru&lr=&newwindow=1&ei=HZt5S-niLoeAnQOj0PGqCQ&sa=X&oi=spell&resnum=0&ct=result&cd=1&ved=0CAYQBSgA&q=windows+driver+cross+certificate&spell=1
« Последнее редактирование: 15-02-2010 19:06 от Ochkarik » Записан

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

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines