Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Разроботка наипростейшего драйвера

13K
29 ноября 2006 года
magres
16 / / 03.05.2006
Привет ребят.

В универе для курсовой нужно написать любой драйвер. С таким низкоуровневым программированием не сталкивался. Подскажите пожалуйста какой самый простой можно написать, затрачивая на обучение и написание сие. Навыки ASM, C есть :) XP DDK тоже есть :)

заранее спасибо :)
547
29 ноября 2006 года
Hydra
488 / / 20.06.2006
Ну изобрети велосипед - напиши драйвер мышки с инверсией кнопок и колесика.
261
29 ноября 2006 года
ahilles
1.5K / / 03.11.2005
во первых драйверы бывают разные
во вторых драйвер не обяхан быть "драйвером" устройства
в третьих в DDK есть примеры только они на C++ но я думаю тебе составит проблем переписать с с++ на асм
в четвёртых для написания драйверов на асме не обязательно устанавливать DDK (только ради документации).
в пятых как ты докажешь что драйвер сейчас запущен и работает и в списке служб он не выводится (но это решается дополнительными манипуляциями с реестром)
ведь из драйвера не вызовешь
MessageBox(0,"First Driver","Hello, World!",0);
В шестых если училка не слишком шарит в этом просто создай любую службу и назови её "Very Cool Driver!" , я уверен что если училка не слишком прошаренная, то она будет в востроге
если
13K
29 ноября 2006 года
magres
16 / / 03.05.2006
Ну просто предмет называется операционные сети :) я еще в драйверах нини :)

может посоветуешь что ?
252
30 ноября 2006 года
koderAlex
1.4K / / 07.09.2005
когда то видел в сети драйвер мышиного коврика с исходником .))
после установки в устройствах пойвляется новый девайс ) .
13K
30 ноября 2006 года
magres
16 / / 03.05.2006
тьфу ! предмет: операционные системы :) (видать сильно спать хотел когда предыдущий пост писал)

ну один написал драйвер управление лампочкой Num lock на клавиатуре:) это сложно ? и где можно информацию об этом почитать ?
261
30 ноября 2006 года
ahilles
1.5K / / 03.11.2005
для управления лампочкой есть программа прикол из книги "ПРограмирование в дельфи глазами хакера" короче цветомузыка на этих лампочках
а вообще то для управления этими лампочками есть специальные API функции и никаких дров не надо (и угля не надо и газа не надо :-))
1.8K
30 ноября 2006 года
k3Eahn
365 / / 19.12.2005
magres
Дык, сам же говоришь - любой драйвер. И ahilles тебе уже сказал, что он не обязан быть драйвером какого-нибудь устройства.
Покажи в драйвере то, что невозможно сделать в юзермоде.
23K
30 ноября 2006 года
EugenOs
4 / / 29.11.2006
в сети много примеров драйверов под NT/2K/XP дающих простым программам доступ к портам ввода вывода. напиши в гугле или нигме
UserPort - и получи такой драйвер с исходниками. посмотри что-как и сделай попроще ( там к нему прилагается программа, для настройки - какие порты открывать, а ты просто открой к примеру COM1 )
Вот тебе и будет - простейший драйвер.
252
01 декабря 2006 года
koderAlex
1.4K / / 07.09.2005
а ещё лучше зделать в железе радиоуправлямого роботика , с каналом управы через ком или лпт . тогда по программированию до пятого курса отлично будут ставить . у мя с парал потока чел прогу по распознаванию сварганил (а мож стащил откудато ) . так он её как курсовик по 6 предметам здал как курсовик (ловкость рук и т.д.) . вот как надо ))
261
01 декабря 2006 года
ahilles
1.5K / / 03.11.2005
к LPT и COM можно обращаться и в "юзер мод" через createfile и т.д.
6.6K
03 декабря 2006 года
Scaiman
126 / / 25.07.2006
http://www.wasm.ru/docs/1/kmdtut.zip есть много интересного.
13K
04 декабря 2006 года
magres
16 / / 03.05.2006
Цитата: Scaiman
http://www.wasm.ru/docs/1/kmdtut.zip есть много интересного.



читаю остановиться немогу :) большое спасибо :)

*если тут есть репутация, подниму :)

13K
06 декабря 2006 года
magres
16 / / 03.05.2006
Прочитав цикл статей, появляются вопросы,

Правильно ли я понял, рабочая область оперативки разделена пополам: на уровень ядра (системный) и пользовательский. При загрузке приложения к выполнению, он загружается в пользовательский, при загрузке драйвера (драйвер это и есть лишь реализация приложения для режима ядра) соответственно в режим ядра. Ассемблерный код для ядра имеет гораздо шире возможности, посылания различных сигналов на различные порты. А для пользователя - беднее возможности. Соответственно тот код, или функция, который обращается к портам, должен содержаться в теле файла драйвера (sys) и этот код обязательно должен быть в режиме ядра.

Вопрос: Можно ли из области ядра вызывать апи функцию из dll ?

Насколько я знаю dll не загружаются в область ядра.

Существует например hal.dll который допустим может отправлять сигналы на пс-спикер. Получается соответствующая функция обращатся к диспетчеру ввода-вывода и затем уже к какому-то стороннему драйверу ?

или например написав драйвер beeper.sys , он ссылается на функцию из hal.dll. То есть он из системной зоны адресуется в зону пользователей, оттуда вызывает функцию, которая в свою очередь делает запрос на ядро и вызывает соответствующий код в другом драйвере ?

Верно ?

И еще вопрос, в MS DOS похоже нет разделения на ядра и пользователя, там везде полномочия ядра :) и можно вызвать абсолютно любое прерывание. Хоть чтение диска на таком то цилиндре, такойто дорожке итд...

А как с этим обстоит в Windows ? например известна функция API регистрации окна в системе. Как она работает ? она посылает запрос на диспетчер ввода вывода, отправляет команду на драйвер системы. И вызывает прерывание,... в результате создает новое окно с дескриптом личным. Или как ?

Очень скоро все сдавать просто, заранее спасибо :)
261
06 декабря 2006 года
ahilles
1.5K / / 03.11.2005
во первых
hal.dll загружна в память ядра
во вторых
в MS DOS процессор работает в реальном режиме
а Windows работает в защищённом режиме
в третьих
фактически дескриптор по определению 64 битная структура и описывает сегмент памяти, а окно это объект ядра а то значение которое ты получаешь от функции CreateWindow и FindWindow это всего лишь индекс записи в некотрой таблице этого процесса и в этой записи есть реальное смещение на структуру данных в памяти ядра которая описывает этот объект (конечно объект окна это плохой пример но тем не менее)
в четвёртых
читай книжки
13K
06 декабря 2006 года
magres
16 / / 03.05.2006
Подскажи пожалуйста простые книжки. Чтоб доходчиво и понятно было ) в ближайшие сроки просто надо успеть :(
261
07 декабря 2006 года
ahilles
1.5K / / 03.11.2005
непомню как зовут автора вроде Джефри Рихтер
"Создание эффективных WIN32-приложений
с учетом специфики 64-разрядной версии Windows "
не помню где качал
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог