На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются.
4. Используйте теги [ code=cpp ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Старайтесь формулировать свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной и более давности без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта (C++) user posted image FAQ Форума user posted image Наши Исходники user posted image Поиск по Разделу user posted image MSDN Library Online (Windows Driver Kit) user posted image Google

Ваше мнение о модераторах: user posted image B.V.
Модераторы: B.V.
  
> Написание драйверов (формат WDM/WDF) , первые шаги
    Добрейшего времени суток!

    Возникла необходимость научиться писать WDM/WDF-драйвера.

    Пока не могу нормально "стартануть" :wacko: Доселе с VS дело вообще не имел, поэтому часть вопросв будет именно по нему. В различных источниках прочитал, что связки VS2008+WDK будет достаточно, чтобы писать драйвера. Для компиляции примеров в описаловах рекомендовано выполнять команду build с параметрами. Пробовал, все норм собирается.

    Захотелось использовать IDE VS2008, опять же в одной из статей нашел якобы работающие настройки:
    Цитата

    C\C++ - General - Debug Information Format = Program Database (/Zi)
    C\C++ - Preprocessor - Preprocessor Definitions = _X86_ [add also DBG for Debug config]
    C\C++ - Code Generation - Enable C++ Exceptions = No
    C\C++ - Code Generation - Basic Runtime Checks = Default
    C\C++ - Code Generation - Buffer Security Check = No (/GS-)
    C\C++ - Advanced - Calling Convention = __stdcall (/Gz)
    C\C++ - Advanced - Compile As = Compile as C Code (/TC) [if you are going to use plain C]
    Linker - General - Output File = $(OutDir)\$(ProjectName).sys
    Linker - General - Enable Incremental Linking = Default
    Linker - Input - Additional Dependencies = ntoskrnl.lib hal.lib $(NOINHERIT) [add needed libs here e.g. ntoskrnl.lib hal.lib]
    Linker - Input - Ignore All Default Libraries = Yes (/NODEFAULTLIB)
    Linker - Manifest File - Generate Manifest = No
    Linker - System - SubSystem = Native (/SUBSYSTEM:NATIVE)
    Linker - System - Driver = Driver (/DRIVER)
    Linker - Advanced - Entry Point = DriverEntry
    Linker - Advanced - Base Address = 0x10000
    Linker - Advanced - Randomized Base Address = Disable (/DYNAMICBASE:NO)
    Linker - Advanced - Data Execution Prevention (DEP) = Disable (/NXCOMPAT:NO)


    Попробовал собрать простейший примерчик - ничче не вышло, полетели ошибки. Есть как дополнение - пакет VisualDDK, но это явные дополнительные плюшки, неужели без них никак.

    Итого вопрос: можно ли настроить среду VS2008 для сборки драйверов в IDE, а не из командной строки (если "да", то как)?
      Цитата JoeUser @
      можно ли настроить среду VS2008 для сборки драйверов в IDE

      Почему люди не читают FAQ?
      Как настроить Visual Studio для разработки драйверов
        Цитата B.V. @
        Как настроить Visual Studio для разработки драйверов


        Спасибо, буду пробовать!

        Цитата B.V. @
        Почему люди не читают FAQ?

        Глубокое исследование форума не могу себе позволить по времени.
        Смотрел линейно.

        1) На форум запрыгнул прямо в "тематический" раздел":

        user posted image

        2) В разделе обнаружил аж два FAQ, в которых нужного мне не было:

        user posted image

        Предложил бы ... или исправить второй линк на картинке выше на "правильный FAQ", либо в подразделах сделать тему-ссылку на FAQ всего раздела C++. Так было бы ИМХО, нагляднее.
        Сообщение отредактировано: JoeUser -
          Ну и по существу ... сделал по FAQ, и при компиляции этого кода:
          ExpandedWrap disabled
            #include <wdm.h>
             
            NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
            {
                //
                return STATUS_SUCCESS;
            }


          ... Получил вот это:
          Скрытый текст

          ExpandedWrap disabled
            1>------ Построение начато: проект: HelloDriver, Конфигурация: Release Win32 ------
            1>Компиляция...
            1>HelloDriver.cpp
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(60) : error C2143: синтаксическая ошибка: отсутствие ")" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(60) : error C2085: _ExceptionRecord: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(61) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(61) : error C2085: _EstablisherFrame: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(62) : error C2085: _Inout_: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(62) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(62) : error C2085: _ContextRecord: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(63) : error C2085: _Inout_: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(63) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(64) : error C2059: синтаксическая ошибка: )
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(64) : error C2085: _DispatcherContext: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(110) : error C2082: переопределение формального параметра "_exception_code"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(111) : error C2082: переопределение формального параметра "_exception_info"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(112) : error C2082: переопределение формального параметра "_abnormal_termination"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(94) : error C2061: синтаксическая ошибка: идентификатор "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2054: требуется "(" после "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2143: синтаксическая ошибка: отсутствие ")" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2085: _isctype_l: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2085: _C: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2085: _In_: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2085: _Type: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2085: _In_opt_: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2146: синтаксическая ошибка: отсутствие "," перед идентификатором "_locale_t"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2146: синтаксическая ошибка: отсутствие "," перед идентификатором "_Locale"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95) : error C2059: синтаксическая ошибка: )
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(96) : error C2061: синтаксическая ошибка: идентификатор "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2086: int _Check_return_: переопределение
            1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95): см. объявление '_Check_return_'
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2054: требуется "(" после "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2143: синтаксическая ошибка: отсутствие ")" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2085: _isalpha_l: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2085: _C: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2085: _In_opt_: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2146: синтаксическая ошибка: отсутствие "," перед идентификатором "_locale_t"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2146: синтаксическая ошибка: отсутствие "," перед идентификатором "_Locale"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(97) : error C2059: синтаксическая ошибка: )
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(98) : error C2061: синтаксическая ошибка: идентификатор "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2086: int _Check_return_: переопределение
            1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95): см. объявление '_Check_return_'
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2054: требуется "(" после "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2143: синтаксическая ошибка: отсутствие ")" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2085: _isupper_l: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2085: _C: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2085: _In_opt_: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2146: синтаксическая ошибка: отсутствие "," перед идентификатором "_locale_t"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2146: синтаксическая ошибка: отсутствие "," перед идентификатором "_Locale"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(99) : error C2059: синтаксическая ошибка: )
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(100) : error C2061: синтаксическая ошибка: идентификатор "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2086: int _Check_return_: переопределение
            1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95): см. объявление '_Check_return_'
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2054: требуется "(" после "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2143: синтаксическая ошибка: отсутствие ")" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2085: _islower_l: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2085: _C: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2085: _In_opt_: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2146: синтаксическая ошибка: отсутствие "," перед идентификатором "_locale_t"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2146: синтаксическая ошибка: отсутствие "," перед идентификатором "_Locale"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(101) : error C2059: синтаксическая ошибка: )
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(102) : error C2061: синтаксическая ошибка: идентификатор "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2086: int _Check_return_: переопределение
            1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95): см. объявление '_Check_return_'
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2054: требуется "(" после "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2143: синтаксическая ошибка: отсутствие ")" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2085: _isdigit_l: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2085: _C: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2085: _In_opt_: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2146: синтаксическая ошибка: отсутствие "," перед идентификатором "_locale_t"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2146: синтаксическая ошибка: отсутствие "," перед идентификатором "_Locale"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(103) : error C2059: синтаксическая ошибка: )
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(104) : error C2061: синтаксическая ошибка: идентификатор "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2086: int _Check_return_: переопределение
            1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95): см. объявление '_Check_return_'
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2054: требуется "(" после "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2143: синтаксическая ошибка: отсутствие ")" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2085: _isxdigit_l: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2085: _C: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2085: _In_opt_: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2146: синтаксическая ошибка: отсутствие "," перед идентификатором "_locale_t"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2146: синтаксическая ошибка: отсутствие "," перед идентификатором "_Locale"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(105) : error C2059: синтаксическая ошибка: )
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(106) : error C2061: синтаксическая ошибка: идентификатор "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2086: int _Check_return_: переопределение
            1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95): см. объявление '_Check_return_'
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2054: требуется "(" после "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2143: синтаксическая ошибка: отсутствие ")" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2085: _isspace_l: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2085: _C: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2085: _In_opt_: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2146: синтаксическая ошибка: отсутствие "," перед идентификатором "_locale_t"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2146: синтаксическая ошибка: отсутствие "," перед идентификатором "_Locale"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(107) : error C2059: синтаксическая ошибка: )
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(108) : error C2061: синтаксическая ошибка: идентификатор "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(109) : error C2086: int _Check_return_: переопределение
            1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(95): см. объявление '_Check_return_'
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(109) : error C2054: требуется "(" после "_Check_return_"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(109) : error C2143: синтаксическая ошибка: отсутствие ")" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(109) : error C2085: _ispunct_l: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(109) : error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(109) : error C2085: _C: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(109) : error C2085: _In_opt_: отсутствует в списке формальных параметров
            1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ctype.h(109) : fatal error C1003: число ошибок превышает 100; остановка компиляции
            1>Журнал построения был сохранен в "file://c:\Projests\HelloDriver\HelloDriver\Release\BuildLog.htm"
            1>HelloDriver - ошибок 102, предупреждений 0
            ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========



          VS2008 + WDK 7600.16385.1

          Где косяк может быть?
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0585 ]   [ 16 queries used ]   [ Generated: 6.09.25, 17:09 GMT ]