Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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.007 c
6-44295
D
2003-02-20 16:14
2003.04.14
Сокеты через WinAPI


14-44324
kaif
2003-03-26 10:21
2003.04.14
Директивы компилятору


1-44137
Брат
2003-04-03 12:45
2003.04.14
Как в StringGrid e сделать активной какую-то ячейку?


1-44122
Gennadiy
2003-04-02 19:59
2003.04.14
Принтер не печатет в Win98, по команде WriteLn


6-44320
Bosh
2003-02-20 10:42
2003.04.14
Проблеммы с FTP компонентом Indy





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский