|
Заблокирован
|
|
Нужен пример простейшего драйвера на C/C++. Visual Studio 2008/новее. Win 8 x64, можно и XP x86 (а лучше оба)19.03.2015, 01:49. Показов 40553. Ответов 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
Регистрация: 24.09.2015
Сообщений: 18
|
|||||||||||
| 14.06.2017, 19:16 | |||||||||||
|
Всякое бывает, может и я плохо описал код, да и там в глаза бросается так, что может смешиваться инфа на первый взгляд.
У меня опыта особого нет, но я вот дебажу пока через DbgView, делаю выводы и там просматриваю. Кстати как я говорил у меня было предположение, что я саму логику кода, сам алгоритм не верно выстроил, криво реализовал, сейчас вроде обнаружил зацикленность, не правильно проверку задал. Это в другом списке, не в том, что я описал тут. Ну со своим кодом я, конечно, сам разберусь) Мне просто было важно услышать от Вас - правильно ли я понимаю механику, как должно всё выглядеть, эта работа со списком. Если всё верно, то додебажу и надеюсь всё будет хорошо) Добавлено через 3 часа 16 минут Продебажил, нашел ошибку. Не ожидал такого, казалось бы, что Windows вроде параллелизм не поддерживает, всё равно передаётся управление между потоками: сразу один выполяется, потом операционная система когда нужно передаёт управление другому потому и т.д, а тут в общем как-то случилось так, что одновременно два потока выполнились, а мне этого нельзя. В общем ситуация такая, что юзермодная программа делает запрос информации у драйвера, информации нет, я кидаю режим ожидания юзермодной программе, сохраняю пакет просто в глобальную переменную, устнавливаю глобальный флаг, что этот пакет есть и его можно юзать. В функции перехвата запуска процесса проверяется этот флаг и если он true, то завершается IoCompleteRequest для пакета, который хранится в глобальной переменной. Тут то и проблема, два потока одновременнно успевают зайти во флаг и два раза завершается один и тот же пакет. В итоге юзермодная программа первое завершение пакета игнорит, а второе завершение обрабатывается и в моём коде отправляется ответ драйверу. Таким образом первый процесс, который одновременно заюзал пакет со вторым процессом, завис, т.к я торможу его, пока не будет ответа от юзермодной программы, а ответа больше никогда не будет. Вы говорили что можно юзать списки для пакетов, но я их не юзал из тех соображений, что думал, что такого не будет, это раз, а два - это то, что у меня лишь будет только один такой пакет, который нужно сохранять, больше никогда не будет. А можно использовать наример не те списки для таких пакетов, а например какой-нибудь мьютекс. Чать кода в перехвате запуска программы установить типа защищенным и когда какой-то поток заходит при запуске процесса, при входе другого он будет остановлен, пока первый не выйдет? Добавлено через 1 час 3 минуты Такс, попробовал спин блокировки, по тому что увидел в интернете сделал вот так: Глобальные переменные
0
|
|||||||||||
|
Ушел с форума
|
|||||||||
| 15.06.2017, 09:58 | |||||||||
|
На двухъядерных и более процессорах потоки в системе могут физически выполняться параллельно. Во-первых, спин-лок - это очень опасный объект синхронизации. Неумелое его использование приводит к лишнему "прожиганию" CPU. А еще спин-лок накладывает ограничения на используемый тип памяти под блокировкой (только non paged, потому что под блокировкой всегда IRQL == DISPATCH_LEVEL). Этот объект синхронизации лучше использовать только исключительно там, где без него ну никак. А для остальных случаев есть fast mutex, ERESOURCE и т.д. Во-вторых, завершать пакет лучше не под блокировкой, а вне ее:
0
|
|||||||||
| 15.06.2017, 09:58 | |
|
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 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|