|
Заблокирован
|
|
Нужен пример простейшего драйвера на C/C++. Visual Studio 2008/новее. Win 8 x64, можно и XP x86 (а лучше оба)19.03.2015, 01:49. Показов 40880. Ответов 121
Метки нет (Все метки)
Совсем хорошо будет, если этот драйвер будет еще и делать что-то хоть как-то заметное юзером
![]() И совсем замечательно, если будет еще и вкратце объяснено, как его установить на обеих ОС ![]() P.S. Да-да, ![]() Добавлено через 43 секунды И да, можно в принципе и не VS 2008, а что-то еще, хоть MinGW. Только тогда попрошу пояснить, какая у вас версия того компилятора и как его юзать. Добавлено через 1 минуту VS только Express, так что VisualDDK, к сожалению, никак не пойдет...
1
|
|
| 19.03.2015, 01:49 | |
|
Ответы с готовыми решениями:
121
Как установить Windows 10 x64 (после обновления с Win 7 x86 до Win 10 x86) сохранив лицензию
Разработка драйвера в Visual Studio 2008 |
|
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 38
|
|
| 11.05.2016, 19:46 | |
|
0
|
|
|
Ушел с форума
|
|
| 11.05.2016, 20:29 | |
|
Значит, .sys-файла нет на месте.
Часто так бывает на 64-битной Windows, когда файл кидают в C:\Windows\system32\drivers, а на самом деле из-за редиректа он оказывается в C:\Windows\SysWow64\drivers.
0
|
|
|
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 38
|
|
| 23.05.2016, 20:38 | |
|
Подскажите, не пойму как дальше быть
Когда драйвер написан, скомпилирован, нужно еще написать программу, которая иллюстрирует его работу, которая вызывает этот драйвер. Я не совсем пойму, как это будет, если не сложно объясните максимально доступно, что должна представлять собой программа, которая вызывает драйвер и иллюстрирует его работу Спасибо.
0
|
|
|
Ушел с форума
|
|
| 23.05.2016, 20:50 | |
|
Это зависит от того, что умеет делать драйвер. Обычно взаимодействие программы и
драйвера строится на базе стандартной схемы ввода-вывода: драйвер создает именованное устройство и символьную ссылку на него (IoCreateDeviceSecure + IoCreateSymbolicLink), а также реализует обработчики IRP_MJ_CREATE, IRP_MJ_DEVICE_CONTROL, IRP_MJ_CLEANUP и IRP_MJ_CLOSE, после чего приложение может открывать его через CreateFile и слать запросы - DeviceIoControl. Например, можно в драйвере собирать какую-нибудь интересную системную информацию и отдавать по запросу в юзермодное приложение.
0
|
|
|
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 38
|
||||||
| 26.05.2016, 23:10 | ||||||
|
Подскажите пожалуйста, компиляция прошла успешно, а вот при попытке запуска выдает ошибку 31(на скрине)Это значит на более ранних версиях винды оно только работать будет или как?
0
|
||||||
|
Ушел с форума
|
||
| 27.05.2016, 10:06 | ||
|
только и всего. В данном коде параметры PsSetCreateProcessNotifyRoutine неправильные.
0
|
||
|
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 38
|
|
| 27.05.2016, 20:34 | |
|
Изменил TRUE на FALSE в аргументах, служба успешно запущена, но в ДбгВью не выводит отладочные сообщения
0
|
|
|
Ушел с форума
|
|
| 28.05.2016, 07:47 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 38
|
|
| 28.05.2016, 14:54 | |
|
Ничего не менялось, запускаю от имени администратора,стоит галочка, но выводит какие-то сообщения периодически, но с того драйвера, что я запускаю не выводит ничего...
0
|
|
|
Ушел с форума
|
|
| 28.05.2016, 15:32 | |
|
А что-нибудь кроме DbgView пробовал? Я, например, этой утилитой вообще сейчас не пользуюсь.
Просто перевожу систему в режим отладки (bcdedit.exe) и подключаюсь WinDBG через com/pipe. Там еще один флажок в реестре надо прописать - Debug Print Filter. P.S. Убери звездочку перед MyCreateProcessNotifyRoutine. Странно, что вообще не падает...
0
|
|
|
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 38
|
|
| 28.05.2016, 20:32 | |
|
Спасибо, сейчас попробую,
Добавлено через 30 секунд Та то я пробовал даже не тот пример, просто банально два сообщения при загрузке и выгрузке драйвера сделал Добавлено через 4 часа 27 минут А можете объяснить как нужно правильно использовать функцию ZwCreateFile, что бы проверить есть ли файл на флешке, а то не получается совсем с ней...
0
|
|
|
Ушел с форума
|
|
| 30.05.2016, 10:50 | |
|
Можешь попробовать ZwOpenFile, она для этой цели проще (т.к. меньше параметров).
Только не вызывай ее напрямую из нотификатора на запуск процессов, потому что на время его выполнения отключена доставка APC, а без нее ZwOpenFile не работает.
1
|
|
|
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 38
|
|
| 30.05.2016, 12:27 | |
|
Так а нужно тогда отдельный поток создавать, в котором вызывать ее или как?
И еще как будет выполняться сама проверка есть ли файл? Мне его открывать, и если удалось открыть то отдаю управление, а если не удалось открыть то сразу обрубать процесс??
0
|
|
|
Ушел с форума
|
|||
| 30.05.2016, 13:27 | |||
|
что по запросу вызывать ZwOpenFile и возвращать результат. А можно то же самое поручить work item-ам, чтобы не заморачиваться с потоками.
1
|
|||
|
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 38
|
|
| 30.05.2016, 15:02 | |
|
А как мне возвращать управления, вот если ZwOpenFile возвращает STATUS_SUCCESS, то что дальше делать?
0
|
|
|
Ушел с форума
|
|
| 30.05.2016, 15:46 | |
|
У тебя срабатывает нотификатор на запуск процесса.
В этом нотификаторе ты запускаешь work item (или даешь сигнал своему рабочему потоку) и ждешь, пока тот его не обработает и не вернет результат. И по результату либо просто возвращаешь управление системе из нотификатора, либо делаешь ZwTerminateProcess.
0
|
|
|
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 38
|
||||||
| 30.05.2016, 19:00 | ||||||
|
А можете написать, как будет выглядеть ZwOpenFile?
Пытался написать все функции и потом собрать и привести в действие, но зашел в дебри, если не сложно - поправьте в общем, очень запутался с параметрами вообще...
Там в начале, то просто начал писать в этом файле остальные функции, то скинул как есть пока
0
|
||||||
|
Ушел с форума
|
|
| 30.05.2016, 20:07 | |
|
Почему у тебя в ZwOpenFile вместо ACCESS_MASK передается указатель на ACCESS_MASK?
И вместо ShareAccess указатель на ShareAccess? И почему обе эти переменные неинициализированы? И почему реализация MyWorkItem находится внутри другой функции - DriverEntry? Это похоже не на дебри, а на незнание языка C. Если в документации MSDN написано, что такой-то параметр - это ULONG, значит, и передавать туда надо ULONG, а не указатель на ULONG. Иначе оно просто не будет компилироваться.
1
|
|
|
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 38
|
|
| 30.05.2016, 20:16 | |
|
Спасибо, половину уже по исправлял
А можно каким-то образом записывать в файл создание каждого нового процесса или удаление? получается выводить отладочные сообщения, о создании или удаления процесса, получается так же создавать файл в указанной папке и записывать туда указанную строку, А можно сделать так, что бы отладочные сообщения не выводились, а вместо них делались соответствующие записи в файл, который мы создаем?
0
|
|
|
Ушел с форума
|
|
| 30.05.2016, 20:52 | |
|
Ну конечно можно. Используй ZwWriteFile, например.
Кстати, права доступа в ядре указывать не обязательно, все равно проверки безопасности пропускаются. Можно, например, открывать процесс с ACCESS_MASK = 0 и с ним все равно можно будет работать.
1
|
|
| 30.05.2016, 20:52 | |
|
User32.dll на Win x64 - это x86-библиотека, x64 или. и то и другое одновременно? Установка Visual Studio 2008 на Windows 7 Professional x64 bit Qt Creator & MS Visual Studio создание окна в Win 7 x64 Win API в Microsoft Visual Studio 2008 Не ставится Win 7 x86 и Win 7 x64 на GPT раздел жесткого диска Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|