Форум: "Система";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];
ВнизНаписание DeviceDriver`ов NT c TService Найти похожие ветки
← →
alexrush (2003-02-14 18:47) [0]Доброго Вам времени суток, господа мастера.
Суть моей проблемы - запустить свою прогу под NT с CPL 0. На мой взгляд, ближайший путь - написание драйвера устройства(если кто-нибудь знает лучший вариант, быду рад выслушать).
Проблема для меня, собственно, в создании дров как таковых, я этим никогда не занимался, классику не читал, а написать надо относительно быстро.
Что нужно сделеть с TService, кроме ServiceType=stDevice?
Какие обработчики и как написать?
Заранее спасибо.
← →
Serious Sam (2003-02-15 11:07) [1]Если девайс хардварный, то нужен kernel mode service (equ "kernel mode driver"), а не user mode service. Иначе не удастся достучаться до ф-й обмена с железом (HAL и проч.).
Переключение же cpl3 >>> cpl0 мимо драйверной системы противоречит принципам, по которым строилась архитектура Windows NT.
← →
alexrush (2003-02-15 11:39) [2]Serious Sam > Можно ли по-подробнее. Меня интересует, как нужно в сервисе писать обработчик void Handler(DWORD ctrlcode), который устанавливается с пом. RegisterServiceCtrlHandler, чтобы драйвер корректно запустился (именно и только это и требуется).
← →
Serious Sam (2003-02-15 12:41) [3]Kernel mode service (сиречь драйвер режима ядра) отличается от обычного user mode service тем, что он работает в cpl0 и использует внутренний системный API, т.н. native API. Они не должны использовать Win32 API.
User mode services используют Win32 API. TService реализует свою функциональность через Win32 API. Поэтому мы не можем использовать его для написания kernel mode - сервисов.
Так что какие бы мы свойства не меняли у объекта TService, заставить его запуститься как драйвер режима ядра мы не сможем.
Как говорят в американских мелодрамах: "I"m sorry..." :)
← →
alexrush (2003-02-17 17:07) [4]Serious Sam >> Не знал такого прикола. Спасибо, что просветил.
Если можешь, скажи где взять человеческие доки на рашн по написанию дров и по native API.
*Почти риторический вопрос: если TService использует Win32 API, то зачем в тип сервиса включено stDevice. Что имеется в виду?
*И совсем ламерский вопрос - Где и Что КОНКРЕТНО скачать с microsoft`a (или еще откуда), чтобы поиметь на своем винте пакет с благозвучным названием "DDK"?
Спасибо.
← →
Alex Konshin (2003-02-17 23:27) [5]Раньше они раздавали Win2k нахаляву, но, по-моему, сейчас скачать забесплатно нельзя (может я и ошибаюсь, если найдете - свистните). Смотри сам:
http://www.microsoft.com/ddk/?gssnb=1
В MSDN library есть справка по DDK, но, такое ощущение, что она неполная и уж точно там нет примеров (а без них совсем тоска), по крайней мере, я не очень давно пытался найти поиском некий пример, чтобы дать здесь в форуме url, но не смог, хотя в Win2k DDK он есть...
Вот немного порылся на Гугле и нашел:
http://buerger.metropolis.de/power-info2/Programmieren/DDK/Download/index.htm
Понятно, я не гарантирую, что там нет троянов и вирусов :)
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c