Я хочу научиться писать драйверы, под Win NT , напервое время WDM. Че стоит(в порядке установки): 1.WinXP sp2 2.Visual C++ 6.0 (Ну люблю я его всем сердцем) 3.DDK (WDFv10.iso) 4.DriverStudio 3.2 В чем трудности: Смотрим аттач. Создал проект спомощью Driver Wizard и.. о боже, она такой проект накатал, что очень сложно разобраться. Методом научного тыка привел к текущему (аттач) виду, но сделать удовлетворительный шаблон проекта драйвера все еще не получается - слишком много не нужных файлов. Как можно еще упростить этот шаблон? Что еще можно выкинуть да так чтобы из среды VC++ 6.0 по кнопке "BUILD with DDK" драйвер создавался? _2091620796__Template.rar
Расскажу как делал я. Сначала я попытался поступить как ты - то есть использовать шаблоны. Потом плюнул на это. Почитал статьи Four-F(очень рекомендую). Посмотрел как это переводится в Си. Самый простой шаблон состоит из одной процедуры DriverEntry. Затем начинаешь игратся - а как это работает в драйвере? Как он пишет в файл? Как обработать IRP? В результате написался шпион уровня ядра, который все нажатия пишет в файл. _1888359588__kbdspy.rar
Там все дело в ключах для компиляции/линковки, а писать драйвер с одной DriverEnrty или со всеми возможными рутинами - второстепенный момент. EvilsInterrupt, мы ж с тобой вчера минимизировали тот проект до самого минимума, т.е. когда у тебя есть правильные ключи для сборки и вообще нет никаких source файлов.
Зачем столько пурги в том шаблоне? И эта куча самодельных структур, вносящих путаницу... Достаточно четырех функций. Вот мой шаблон: 1576590525__111
Эти самодельные структуры нагенерила DriverStudio Интересно, они кому-то вообще помогают? По-моему это только размер кода раз в 10 увеличивает
cresta >Зачем столько пурги в том шаблоне? Писал в самом начале: "Создал проект спомощью Driver Wizard" и " Методом научного тыка привел к текущему.." Взяв твой шаблон, передо мной встанет следущая задача: Как его оформить в виде проекта, с которым можно будет работать через среду Visual C++ 6.0? Работая через среду я имею следущие возможности: 1. Подсветка синтаксиса 2. Build не посредственно из среды 3. Щелкнув поошибке перешел в нужное место кода ubil Да мы создали, но вчера решил все сделать сам и не фига не понял, что да как сдалать для свой задачи? (о ней ты знаешь) >вносящих путаницу... Именно потому и хочу создать некоторый шаблон драйвера, к примеру шаблон консольного приложения на С++ #include <iostream> using namespace std; int main(int argc,char * argv[]) { return 0; } И он: 1. Может быть с компиллирован 2. не содержит ни чего лишнего!
EvilsInterrupt Я использую SourceInsight. Там есть и подсветка и build и ошибки. По-моему вот это: целиком "заслуга" твоей любимой "среды". Меньше пользуйся средами, и у тебя не будут возникать вопросы подобные данному.
EvilsInterrupt ИМХО лучше всего для компилирования драйверов использовать специально для этого предназначеную утилиту Build. А файлы с кодом можно редактировать в любой среде. Даже если компилировать непосредственно из среды с помощью DriverStudio, то щелкнуть на ошибке и перейти в нужное место кода не получится (там идет просто перенаправление вывода утилиты Build в окно VS). Что касается шаблонов, то они сильно зависят от типа драйвера, который ты хочешь написать. Мой совет - сразу пиши драйвер под конкретную задачу, а когда уже будет какой-то опыт, тогда сможешь насоздавать шаблонов.
Я тоже пользуюсь услугами утилиты build из WINDDK. Вызываю её из SourceInsight нажатием одноименной кнопки в тулбаре
Кто такой WDVv10.iso я не знаю Делаю очень просто: открываю SI, и создаю новый проект. необходимые названия и опции он сам запросит. Создаётся пустой проект. Добавляю в него сорец-шаблон (.cpp) и всё. На тулбаре кнопки Build настраиваются по нажатию мышью при нажатой клавише Ctrl. Выскакивает окошко, в нем указываю какой файл и с какими параметрами командной строки запускать для компиляции. Обычно это простой батник с ключами линкера и компилятора. И всё. В случае с дровами указываю батник, который запускает утилиту build. А где SI хранит свои настройки - не интересовался, там в них кода нет, чего там шарить? Все настраивается из меню.
> WDVv10.iso Ты прав это WDFv10.iso - Windows Driver Frameword v.10 Это мне S_T_A_S посоветовал, вобщем новый DDK
Вся прелесть SI в том, что он не генерит никаких файлов, никаких кодов-шаблонов. Только пустой проект. Что захочешь - то и добавишь.