1 / 1 / 0
Регистрация: 04.09.2011
Сообщений: 40
|
|||||||||||
1 | |||||||||||
Драйвер не загружается14.05.2013, 10:55. Показов 2973. Ответов 19
Метки нет (Все метки)
Здравствуйте, я пишу программу, которая загружает драйвер в память и запускает его. Сама программа написана на C#, драйвер на C++, использую Visual Studio 2012.
Но драйвер не хочет запускаться, он загружается, создаётся сервис, но вот при запуске выдаёт ошибку 129 (ERROR_CHILD_NOT_COMPLETE — The %1 application cannot be run in Win32 mode), тестировал на примере драйвер фильтора файловой системы и примере шпиона с MSDN (http://code.msdn.microsoft.com... m-97844844). Не могу понять из-за чего. Вот код программы
0
|
14.05.2013, 10:55 | |
Ответы с готовыми решениями:
19
Не загружается драйвер Зачем нужен драйвер и как написать простейший драйвер p4s800-mx se. Загружается, почти сразу выключается и загружается нормально. Скачал драйвер для ATI и при загрузке пишет не найден драйвер |
Ушел с форума
|
|
14.05.2013, 11:22 | 2 |
SERVICE_FILE_SYSTEM_DRIVER.
1
|
1 / 1 / 0
Регистрация: 04.09.2011
Сообщений: 40
|
|
14.05.2013, 18:11 [ТС] | 3 |
Попробовал. Никакой разницы.
0
|
Ушел с форума
|
|
14.05.2013, 18:50 | 4 |
Какой код ошибки на этот раз ? Тот же самый ?
Файл драйвера скопирован с drivers\system32 ? Система, случайно, не 64-битная ? Что, если попробовать установить драйвер через sc.exe - он тоже не будет запускаться ?
0
|
1 / 1 / 0
Регистрация: 04.09.2011
Сообщений: 40
|
|
14.05.2013, 19:41 [ТС] | 5 |
Попробовал с другими драйверами, а также с sc, результат один и тот же - 129. Но при запуске с помощью sc или моей программой другой службы всё работает. То есть дело в драйвере, но что именно нужно сделать, чтобы он запускался?
0
|
Ушел с форума
|
|
14.05.2013, 21:39 | 6 |
Попробуйте двигаться маленькими шажками.
Сначала соберите и попробуйте запустить с помощью sc.exe простейший драйвер, состоящий из одной пустой функции DriverEntry, которая возвращает статус успех. Если получится - можно использовать код примера. Потом, если все в порядке, написать свой инсталлятор.
0
|
1 / 1 / 0
Регистрация: 04.09.2011
Сообщений: 40
|
|
14.05.2013, 22:05 [ТС] | 7 |
Такая мысль уже посещала, но я ни разу не писал драйверы, надеялся схалтурить, а нет, придётся писать с нуля.
0
|
Ушел с форума
|
|
14.05.2013, 23:02 | 8 |
Хотите научиться писать драйверы ?
Ставьте Windows Driver Kit 7600.1, изучайте документацию и примеры. Вот здесь я публиковал ссылки на некоторую литературу по драйверам и системному программированию. А все эти Visual Studio 2012, визарды и т.п. только развращают.
0
|
Ушел с форума
|
|
17.05.2013, 23:51 | 10 |
Очень трудно делать первые шаги в таком деле, как программирование драйверов.
Особенно если сразу пытаться объять необъятное. Малейшая проблема - и все, стоп, не знаем где искать причину и с какой стороны подступиться. А решение простое - вернуться к основам. Попробуйте для начала написать простейший драйвер из одной функции, которая ничего не делает, а просто возвращает код успеха. Потом скомпилировать этот драйвер, установить его с помощью sc.exe и запустить. Вот с таких вещей нужно начинать. Кстати, а где код Вашего драйвера ? Ну или сам файл выложите, интересно же, почему и вправду он не запускается...
0
|
1 / 1 / 0
Регистрация: 04.09.2011
Сообщений: 40
|
|
24.05.2013, 20:35 [ТС] | 11 |
Извиняюсь, что так долго не выходил на связь, лабы замучали. Код драйвера не выкладываю, потому что перепробовал уже десяток точно вариантов, а ему всё равно, правда ошибка поменялась на 2, то есть файл не найден, при этом служба не находится только во время попытки запуска, при удалении она, как по волшебству появляется. Может быть вы поделитесь каким-небудь простеньким проектом, а то у самого ничего не получается.
0
|
Ушел с форума
|
|
24.05.2013, 21:30 | 12 |
Какая операционная система ? 32 или 64 бита ?
0
|
1 / 1 / 0
Регистрация: 04.09.2011
Сообщений: 40
|
|
24.05.2013, 22:36 [ТС] | 13 |
32 бита
0
|
Ушел с форума
|
|
24.05.2013, 22:40 | 14 |
А сам файл драйвера можете показать ?
0
|
1 / 1 / 0
Регистрация: 04.09.2011
Сообщений: 40
|
|||||||||||
25.05.2013, 00:10 [ТС] | 15 | ||||||||||
Если брать самый простенький
Заголовочный файл KernelDriver.h
0
|
Ушел с форума
|
|
25.05.2013, 09:51 | 16 |
0
|
1 / 1 / 0
Регистрация: 04.09.2011
Сообщений: 40
|
|
25.05.2013, 13:42 [ТС] | 17 |
Если драйвер отсутствовал, как произошло создание службы? А она создаётся, она отображается в диспетчере задач, к ней применимы вызовы sc query и sc delete, а вот на старт ругается.
0
|
Ушел с форума
|
|
25.05.2013, 15:14 | 18 |
Так и произошло. CreateService не обязана проверять физическое присутствие файла.
Вы проверили, что файл драйвера действительно существует в том месте, откуда он зарегистрирован на запуск ? "Файл не найден" - это ведь очень недвусмысленное сообщение.
0
|
1 / 1 / 0
Регистрация: 04.09.2011
Сообщений: 40
|
|
26.05.2013, 15:11 [ТС] | 19 |
Запускал я прямо из папки с драйвером и просто прописал его имя (файл там был), поидее должно было найти.
0
|
Ушел с форума
|
||||||
26.05.2013, 15:17 | 20 | |||||
Попробуйте сделать вот что.
1) Скопировать файл драйвера (sys) в папку, откуда он будет запускаться. Например, C:\MyDriver\mydriver.sys. Вообще, стандартная локация для драйверов - это C:\Windows\system32\drivers. 2) Зарегистрировать драйвер в системе с помощью встроенной утилиты sc. Например:
Это особенность sc.exe. 3) Запустить драйвер с помощью команды net start. Например, "net start mydriver".
0
|
26.05.2013, 15:17 | |
26.05.2013, 15:17 | |
Помогаю со студенческими работами здесь
20
Не загружается система после экрана "Добро пожаловать", а иногда и загружается Драйвер монитора, действительно ли драйвер? Загружается либо один файл, либо не загружается вообще ничего Не загружается ОС Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |