Настройки проекта драйвера под 64битную ОС
От: Andrey.Katkov  
Дата: 14.05.08 16:27
Оценка:
Доброго времени суток!

Написал драйвер — под 32 битной виндой работает (и ХР и Виста). На 64-ёх битной соответственно нет. Хотелось бы портировать свой драйвер под ней — соответственно порывшись в интернете и почитав справок смог додуматься до следующего:

1) надо поменять настройки проекта типа Preprocessor definitions. В интернете подходящих проектов и настроек с дефайнами не накопал. Может у кого либо есть тестовый примерчик, который бы билдился в драйвер для 64 битной ОС? Или хотя бы линк на тъюториал — в майкрософтовском всё скудно и не ясно.

2) откуда и какие либы линковать тоже не очень понятно — пошарив по своему ДДК не нашёл папки для ХР с подпапками типа IA64 — в 32 битном проекте линкуется всё нормально.
Re: Настройки проекта драйвера под 64битную ОС
От: TarasCo  
Дата: 14.05.08 21:19
Оценка: 3 (1)
1. если вы собираете драйвер из WDK, то никаких сложностей вообще нет — выбираете нужный build enviroment и все.
2. в WDK вы не найдете никаких упоминаний о XP x64. Для сборки под x64 надо использовать сборку для Windows 2003 сервер ( префикс сборки wnet ). Таким образом, драйвера для w2k3 x64 и XP x64 полностью идентичны.
3. При выборе типа сборке не путайте x64 и IA64. Поcледняя платформа — это Intel Itanium, нормальным людям пока ненужная .
Да пребудет с тобою сила
Re: Настройки проекта драйвера под 64битную ОС
От: Maxim S. Shatskih Россия  
Дата: 14.05.08 22:44
Оценка: 2 (1)
AK>Написал драйвер — под 32 битной виндой работает (и ХР и Виста). На 64-ёх битной соответственно нет.

Что значит "нет"? что происходит-то?

AK>1) надо поменять настройки проекта типа Preprocessor definitions.


Не вижу таких настроек в файле SOURCES. Берется файл SOURCES, копи-пастнутый из примерчика. Перебивается в нем имя проекта и имена файлов. Строится той и другой средой. Все работает.

Строить драйвера в Студии — неподдерживаемая конфигурация, гимора с ней по самый бакенбарды, преимуществ нет.

AK>2) откуда и какие либы линковать тоже не очень понятно — пошарив по своему ДДК не нашёл папки для ХР с подпапками типа IA64 — в 32 битном проекте линкуется всё нормально.


Не бывает XP x64 среды построения. Дело в том, что XP x64 есть на самом деле то же самое, что 2003 x64, просто настольная версия. Если в 32 битах 2003 — следующая минорная версия за XP, то в 64 битах это то же самое.

Потому строим под 2003 x64, и везде все работает.
Занимайтесь LoveCraftом, а не WarCraftом!
Re[2]: Настройки проекта драйвера под 64битную ОС
От: Maxim S. Shatskih Россия  
Дата: 14.05.08 22:45
Оценка:
TC>3. При выборе типа сборке не путайте x64 и IA64. Поcледняя платформа — это Intel Itanium, нормальным людям пока ненужная .

Слово "пока" я бы убрал. Failed platform.
Занимайтесь LoveCraftом, а не WarCraftом!
Re[2]: Настройки проекта драйвера под 64битную ОС
От: Andrey.Katkov  
Дата: 15.05.08 06:46
Оценка:
Здравствуйте, Maxim S. Shatskih, Вы писали:

MSS>Что значит "нет"? что происходит-то?


Сервис драйвера регистрируется — но не запускается. При этом CreateFile не работает с ошибкой 2 — "The system cannot find the file specified." Т.е. драйвер попросту не стартуется. При попытке стартануть драйвер ещё вылазит ошибка 1275 — "This driver has been blocked from loading."

MSS>Не вижу таких настроек в файле SOURCES. Берется файл SOURCES, копи-пастнутый из примерчика. Перебивается в нем имя проекта и имена файлов. Строится той и другой средой. Все работает.


В студии их можно посмотреть вот по такому пути:
Properties -> Configuration properties -> C/C++ -> Preprocessor -> Preprocessor Difinitions

MSS>Строить драйвера в Студии — неподдерживаемая конфигурация, гимора с ней по самый бакенбарды, преимуществ нет.


Привык я к Студии как к среде редактирования, привычка пуще не воли

MSS>Не бывает XP x64 среды построения. Дело в том, что XP x64 есть на самом деле то же самое, что 2003 x64, просто настольная версия. Если в 32 битах 2003 — следующая минорная версия за XP, то в 64 битах это то же самое.


MSS>Потому строим под 2003 x64, и везде все работает.


Т.е. Вы советуете сбилдить проект из консоли?
Re[2]: Настройки проекта драйвера под 64битную ОС
От: Andrey.Katkov  
Дата: 15.05.08 06:53
Оценка:
Здравствуйте, TarasCo, Вы писали:

TC>1. если вы собираете драйвер из WDK, то никаких сложностей вообще нет — выбираете нужный build enviroment и все.


Это консольный вариант билда? Без Вижуал студии?

TC>2. в WDK вы не найдете никаких упоминаний о XP x64. Для сборки под x64 надо использовать сборку для Windows 2003 сервер ( префикс сборки wnet ). Таким образом, драйвера для w2k3 x64 и XP x64 полностью идентичны.


Т.е. либы для линковки 64 битного драйвера брать из папок "...\lib\wnet\i386"? Т

TC>3. При выборе типа сборке не путайте x64 и IA64. Поcледняя платформа — это Intel Itanium, нормальным людям пока ненужная .


В этом вопросе я пока профан — только набираюсь знаний. Теперь буду знать.
Re[2]: Настройки проекта драйвера под 64битную ОС
От: Ivan Россия www.rsdn.ru
Дата: 15.05.08 07:36
Оценка: 2 (1)
Здравствуйте, Maxim S. Shatskih, Вы писали:

MSS>Строить драйвера в Студии — неподдерживаемая конфигурация, гимора с ней по самый бакенбарды, преимуществ нет.

Строить можно утилитой build, но использовать при этом все удобства студии при работе с проектом —
нужно просто создать проект типа "makefile" и в настроках проекта использовать что-то типа DDKBUILD для сборки http://www.hollistech.com/Resources/ddkbuild/ddkbuild.htm
(а можно и свой cmd сделать)

при сборке драйвера можно будет перейти по сообщению об ошибке на нужное место в исходниках, при редактировании исходников будет работать intellisense (и visual assist, если есть )
Re[3]: Настройки проекта драйвера под 64битную ОС
От: Аноним  
Дата: 15.05.08 07:55
Оценка: :)
Здравствуйте, Maxim S. Shatskih, Вы писали:

MSS>Слово "пока" я бы убрал. Failed platform.


Она не failed, она просто опередила свое время.
Re[3]: Настройки проекта драйвера под 64битную ОС
От: TarasCo  
Дата: 15.05.08 08:47
Оценка: 2 (1)
AK>Сервис драйвера регистрируется — но не запускается. При этом CreateFile не работает с ошибкой 2 — "The system cannot find the file specified." Т.е. драйвер попросту не стартуется. При попытке стартануть драйвер ещё вылазит ошибка 1275 — "This driver has been blocked from loading."

Это под вистой или под XP ? Для висты x64 драйвер обязательно должен иметь цифровую подпись ( или должен быть выбран специальный режим загрузки — без проверки подписи, или подключен отладчик режима ядра ).
Да пребудет с тобою сила
Re[4]: Настройки проекта драйвера под 64битную ОС
От: Andrey.Katkov  
Дата: 15.05.08 09:27
Оценка:
Здравствуйте, TarasCo, Вы писали:

TC>Это под вистой или под XP ? Для висты x64 драйвер обязательно должен иметь цифровую подпись ( или должен быть выбран специальный режим загрузки — без проверки подписи, или подключен отладчик режима ядра ).


Под Вистой 64 битной. Под XP не пробывал — нету чистой опреационки...

Воспользовался Вашим советом — сбилдил драйвер в консоли. Драйвер собрался (Windows Server 2003 x64 Checked Build Environment).
При попытке запустить драйвер — ошибка номер 577. Это в обычном режиме ОС без подписи. Код ошибки не расшифровывается стандартной тулзой.

Драйвер пока не подписал — щас подпишу, потещу.
Re[3]: Настройки проекта драйвера под 64битную ОС
От: Andrey.Katkov  
Дата: 15.05.08 09:29
Оценка:
Уже билжу в консоли. А редактировал мелочи в студии
Re[4]: Настройки проекта драйвера под 64битную ОС
От: Ivan Россия www.rsdn.ru
Дата: 15.05.08 09:57
Оценка: 2 (1)
Здравствуйте, Andrey.Katkov, Вы писали:

AK>Уже билжу в консоли. А редактировал мелочи в студии

vcproj для студии можно создать рядом — т.е. сохраняетеся возможность собирать драйвер из консоли
например, во время разработки и отладки можно использовать студию, во время сборки билда — непосредственно build.exe
Re[5]: Настройки проекта драйвера под 64битную ОС
От: Andrey.Katkov  
Дата: 16.05.08 07:48
Оценка:
Здравствуйте, Ivan, Вы писали:

I>vcproj для студии можно создать рядом — т.е. сохраняетеся возможность собирать драйвер из консоли

I>например, во время разработки и отладки можно использовать студию, во время сборки билда — непосредственно build.exe

Я так и поступил. Но сейчас затестив получившийся результат приняли решение отказаться от поддержки 64 битной системы. Для моего продуктика — это пока не важно. Обычная цифровая подпись не подходит — нужна какая-то спец подпись под драйвера, полученная по спец правилам.
Re[6]: Настройки проекта драйвера под 64битную ОС
От: Ivan Россия www.rsdn.ru
Дата: 16.05.08 09:03
Оценка: 3 (1)
Здравствуйте, Andrey.Katkov, Вы писали:

AK>Я так и поступил. Но сейчас затестив получившийся результат приняли решение отказаться от поддержки 64 битной системы. Для моего продуктика — это пока не важно. Обычная цифровая подпись не подходит — нужна какая-то спец подпись под драйвера, полученная по спец правилам.


если есть обычный code signing сертификат, то подписать драйвер просто — нужно скачать с сайта microsoft кросс-сертификат
и подписать с помощью signtool.exe, входящей в состав WDK

во время разработки драйвера подойдет и тестовый сертификат, который можно сделать самому с помощью утилиты makecert (в этом случае нужно включить с помощью bcdedit режим testsigning командой "bcdedit -set testsigning on")

подробнее здесь
Автор: Ivan
Дата: 26.06.07
й
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.