Сборка драйверов режима ядра в MS Visual Studio

Тема в разделе "WASM.BEGINNERS", создана пользователем defaultplayer, 25 сен 2008.

  1. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    набросал статью по сабжу, расчитана на новичков, находится в стадии дебаг, поэтому может содержать неточности, ошибки. Некоторые вещи проверить неуспел, поэтому может кто-нибудь что-нибудь подскажет.
     
  2. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    Зачёт! Спасибо.
     
  3. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    такс, обнаружились первые бока. Забыл дописать в разделе "Сборка 64-х разрядного кода для платформы AMD64" в опциях линкера "Target Machine" = "MachineX64 (/MACHINE:X64)"


    [add] чтобы постоянно не вылаживать новый документ с исправлениями, я буду постить здесь изменения, а потом соберу их в релиз статье
     
  4. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    стоит упомянуть еще опцию компоновщика /driver, которая создает секцию init, куда помещается image_import_descriptor и import name table (INT), а также один раз используемые код и данные помеченные в исходном коде таким образом: #pragma code_seg("INIT"), после чего память выделенная под секцию освобождается. Также стоит упомянуть что в более новых DDK возможно определение структур не присутствующих в ранних, тоесть если собирали с более старым DDK, определяя недокументированную структуру в своих хидерах, а потом перешли на более новый, получите от компилера symbol redefinition.
     
  5. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    У меня при попытке забилдить в 2008 она вылетает с эксепшном =)
     
  6. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    она, всмысле студия? :) у меня прекрасно все собирается во всех студиях
     
  7. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Ага, студия, может у меня какой-нибудь сервис-пак не стоит?
     
  8. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    хм, странно, у меня без паков, 2003-я точно, остальные дома стоят, прийду посмотрю, но вроде тоже нет
     
  9. mA2LoUD5d0

    mA2LoUD5d0 New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2008
    Сообщения:
    8
    хороший пример как собрать - DC www.freed0m.org например, проект driver
     
  10. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    изначально, планировал ставить акцент не на самой сборке драйвера, а всего лишь на файле setenv.bat и запуска студии из под него, что дает возможность свободно таскать проект с машины на машину избавив себя от постоянной правки путей и некоторых опций, но чуствую прийдеться пошире развернуть данную тему..
     
  11. mA2LoUD5d0

    mA2LoUD5d0 New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2008
    Сообщения:
    8
    defaultplayer
    Часто таскаете проекты?
    Настройка занимает ну может 50 сек.
    А вобще документ для новичков хороший.
    За это Вам спасибо.
     
  12. defaultplayer

    defaultplayer New Member

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


    В статью постараюсь добавить также описание использования утилиты build, входящей в состав ДДК, разберусь только получше