Про создание шаблона проекта драйвера.

Тема в разделе "WASM.WIN32", создана пользователем EvilsInterrupt, 22 апр 2006.

  1. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Я хочу научиться писать драйверы, под 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" драйвер создавался?



    [​IMG] _2091620796__Template.rar
     
  2. hedgehog

    hedgehog New Member

    Публикаций:
    0
    Регистрация:
    3 янв 2005
    Сообщения:
    13
    Адрес:
    Russia
    Расскажу как делал я.

    Сначала я попытался поступить как ты - то есть использовать шаблоны. Потом плюнул на это.

    Почитал статьи Four-F(очень рекомендую). Посмотрел как это переводится в Си. Самый простой шаблон состоит из одной процедуры DriverEntry. Затем начинаешь игратся - а как это работает в драйвере? Как он пишет в файл? Как обработать IRP? В результате написался шпион уровня ядра, который все нажатия пишет в файл.

    [​IMG] _1888359588__kbdspy.rar
     
  3. ubil

    ubil New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2004
    Сообщения:
    203
    Адрес:
    ODESSA:)
    Там все дело в ключах для компиляции/линковки, а писать драйвер с одной DriverEnrty или со всеми возможными рутинами - второстепенный момент.

    EvilsInterrupt, мы ж с тобой вчера минимизировали тот проект до самого минимума, т.е. когда у тебя есть правильные ключи для сборки и вообще нет никаких source файлов.
     
  4. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Зачем столько пурги в том шаблоне? И эта куча самодельных структур, вносящих путаницу...

    Достаточно четырех функций.



    Вот мой шаблон:

    [​IMG] 1576590525__111
     
  5. ubil

    ubil New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2004
    Сообщения:
    203
    Адрес:
    ODESSA:)
    Эти самодельные структуры нагенерила DriverStudio:) Интересно, они кому-то вообще помогают? По-моему это только размер кода раз в 10 увеличивает
     
  6. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    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. не содержит ни чего лишнего!
     
  7. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    EvilsInterrupt



    Я использую SourceInsight. Там есть и подсветка и build и ошибки.

    По-моему вот это:



    целиком "заслуга" твоей любимой "среды".

    Меньше пользуйся средами, и у тебя не будут возникать вопросы подобные данному.
     
  8. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    мой нумер аськи 337_31_0594 или же int _#_ 20h @@@ yanadex . ru стукнись,напиши если не трудно
     
  9. Son of God

    Son of God New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2005
    Сообщения:
    125
    EvilsInterrupt

    ИМХО лучше всего для компилирования драйверов использовать специально для этого предназначеную утилиту Build. А файлы с кодом можно редактировать в любой среде. Даже если компилировать непосредственно из среды с помощью DriverStudio, то щелкнуть на ошибке и перейти в нужное место кода не получится (там идет просто перенаправление вывода утилиты Build в окно VS).

    Что касается шаблонов, то они сильно зависят от типа драйвера, который ты хочешь написать. Мой совет - сразу пиши драйвер под конкретную задачу, а когда уже будет какой-то опыт, тогда сможешь насоздавать шаблонов.
     
  10. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Son of God

    Респект тебе
     
  11. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Я тоже пользуюсь услугами утилиты build из WINDDK. Вызываю её из SourceInsight нажатием одноименной кнопки в тулбаре
     
  12. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    cresta

    Пришли настройки этой среды под WDVv10.iso.

    Буду жутко рад, если пришлешь
     
  13. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Кто такой WDVv10.iso я не знаю :)

    Делаю очень просто: открываю SI, и создаю новый проект. необходимые названия и опции он сам запросит. Создаётся пустой проект. Добавляю в него сорец-шаблон (.cpp) и всё.

    На тулбаре кнопки Build настраиваются по нажатию мышью при нажатой клавише Ctrl. Выскакивает окошко, в нем указываю какой файл и с какими параметрами командной строки запускать для компиляции. Обычно это простой батник с ключами линкера и компилятора. И всё. В случае с дровами указываю батник, который запускает утилиту build.



    А где SI хранит свои настройки - не интересовался, там в них кода нет, чего там шарить? Все настраивается из меню.
     
  14. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    > WDVv10.iso

    Ты прав это WDFv10.iso - Windows Driver Frameword v.10

    Это мне S_T_A_S посоветовал, вобщем новый DDK
     
  15. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Вся прелесть SI в том, что он не генерит никаких файлов, никаких кодов-шаблонов. Только пустой проект. Что захочешь - то и добавишь.