![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
nanoo |
|
||||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
Доброе время суток.
Имеется опыт в разработке драверов под linux. Довольно большой. Встала задача написать драйвер под windows. Прочитал чуть-чуть msdn, Комисарову ну и пару тематических статей. Со всеми этими знаниямы попытался написать элементарный wdf драйвер режима ядра. Но не тут то было.
сделал build, получил mydriver.sys. копирую его в system32. После этого делаю так:
на что мне отвечают файл не найден (the system cannot find the file specified). Имена файлов и путей проверил - всё правильно (в regedit смотрел). Вопрос: Где ошибка? Что я делаю не так? Когда же я уже увижу в окне деббагера сообщение от моего драйвера? Спасибо. |
||||
|
|||||
nanoo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
Ну что, никто не знает? Или знают все, но вопрос на столько туп, что никто не хочет отвечать?
![]() Это сообщение отредактировал(а) nanoo - 18.6.2010, 23:40 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Попробуйте в binpath написать полный путь (C:\win...)
|
|||
|
||||
nanoo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
Попробовал. В реестре появилось '\??\c:\windows\system32\mydrivers\mydriver.sys' Не работает. Симптомы точно такие же. |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
||||
|
||||
nanoo |
|
||||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
В system32\mydrivers. Может быть существует какой-нибудь другой метод загурзки драйвера в ядро в виндовсе? В линуксе для этого существует insmod/modprobe, вот я по аналогии с линуксом и попробовал service control. Но может быть есть какой-то другой способ? Вот тут http://www.techtalkz.com/microsoft-device-...wont-start.html у людей точно такая же проблема, но решить её, как я понял, не смогли. Вот тут http://www.codeguru.com/forum/showthread.php?t=479023 дядька написал дравер. Он у него первый раз стартует и останавливаеться при помощи sc start/stop, но второй раз уже не стартует - пишет то же что и у меня. Так же он пишет, что у него какая-то ошибка в драйвере. Может и у меня ошибка? Тогда где? Компилируется драйвер даже без ворнингов. Это сообщение отредактировал(а) nanoo - 21.6.2010, 14:03 |
||||
|
|||||
bra1ny |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 26.12.2008 Репутация: 2 Всего: 3 |
NtLoadDriver().
--------------------
Что вас манит сюдаИз заморзких широт?Там гораздо сытней и красивей.Или воля не та, или воздух не тот -Знать и вам не прожить без России. |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Может быть проблема с \??\ в пути - это ссылка на текущую глобальную директорию и она зависит от текущего пользователя, тут я не уверен. |
|||
|
||||
bra1ny |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 26.12.2008 Репутация: 2 Всего: 3 |
сервис манагер при загрузке драйвера выызвает NtLoadDriver(). Так чтобы не париться с сервисами лучше сразу напрямую. попробуйте изменить поле ImagePath на system32\mydrivers\mydriver.sys --------------------
Что вас манит сюдаИз заморзких широт?Там гораздо сытней и красивей.Или воля не та, или воздух не тот -Знать и вам не прожить без России. |
|||
|
||||
nanoo |
|
||||||||||||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
Я в курсе, что sc использует OpenSCManager. Об этом на масм.ру пишут. Именно по этому я этот sc и использую. Я полагаю это "стандартный" способ запуска драйверов в виндовс. Пишешь в реестр данные о сервисе. Типа это дравер, лежить здесь, дополнительные параметры такие-то, там-парам. А потом sc start и всё. Но вот такая вот проблемка получается. Добавлено через 11 минут и 27 секунд
ImagePath стаяла system32\mydrivers\mydriver.sys с самого начала. Я просто не удачно выразился в первом посте. Т.е. вы предлагаете написать свою собственную програмку, которая вызывая NtLoadDriver загружает дравер сама? Я вас правильно понял? Но в документации
говориться, что эта ф-ия смотрит в реестр для того, что бы драйвер загрузить. И мне кажеться что вызов этой ф-и закончиться точно так же как и с sc start. Я вот думаю, может у меня действительно с драйвером что-то не то? Если кто писал дравейра, посмотрите пожалуйста нет ли там ошибки. |
||||||||||||
|
|||||||||||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |