Проблема в первой программе в программировании драйвера с использованием Visual Studio 2010 - PullRequest
0 голосов
/ 17 марта 2011

Я начинаю изучать этот тип программирования (программирование драйвера) с короткого времени.

Я начал с использования традиционного способа _ > Я имею в виду, я использовал только WDK для сборки и компилирования драйвера и работал правильно с простым методом проектов, но я столкнулся с небольшими проблемами в продвинутом, когда я хотел начать расширить мою программу или сделать немного более развитой.

Итак, я начал использовать VS2010 в Windows 7, я действительно столкнулся с множеством проблем, потому что у меня нет предыстории, как я могу использовать его настолько хорошо, насколько это возможно.

Наконец, я подошел к хорошему моменту, этот пункт, скажем (Если вы хотите начать с программирования драйверов в VS2010, 1 - вам следует установить WDK 2 - установить VS2010 3 - Введите пути каталогов заголовков WDK в каталоги VS2010 быть совместимым. 4- Запустите для создания нового проекта и продолжайте.

makefile project

Наконец, я действительно не уверен, это правильный путь или нет, я просто новичок.

Но мне это понравилось, и я нашел хорошие результаты

#include "wdm.h"  
NTSTATUS DriverEntry( IN PDRIVER_OBJECT theDriverObject,  IN PUNICODE_STRING theRegistryPath ) 
 {     
     DbgPrint("Hello World!");    
     return STATUS_SUCCESS; 
  }  

И я получил:

1>------ Build started: Project: 1, Configuration: Debug Win32 ------ 1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(37,5): warning MSB8005: The property 'NMakeBuildCommandLine' doesn't exist.  Skipping... ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== 

Мой вопрос:

Это правильный путь? Как я могу узнать, что эта программа работает правильно? Должен ли я сделать что-то еще, чтобы моя программа работала правильно в режиме кернала?

Ответы [ 3 ]

1 голос
/ 17 марта 2011

Никогда не собирайте драйверы в Visual Studio!

Единственный способ собрать драйвер: открыть командную строку WDK Build Environment, перейдите в каталог с проектом драйвера и набрать "build".

Вы можете использовать Visual Studio только в качестве редактора исходного кода, но не создавайте драйвер с ним!Есть несколько способов сделать это, опубликованные на разных сайтах программирования, но профессиональные разработчики драйверов настоятельно рекомендуют использовать для этого только сборку WDK.

Чтобы открыть среду сборки WDK, выберите главное меню Windows - Программы - Драйвер WindowsКомплекты - WDK - Среды сборки - выберите целевую ОС - выберите среду сборки в соответствии с типом процессора целевого компьютера.Проверенная среда сборки означает Отладка, свободная среда сборки означает Выпуск.

0 голосов
/ 22 марта 2011

Вы не должны использовать компилятор Visual Studio. Компилятор WDK может содержать изменения в стандартном компиляторе WinSDK или Visual Studio.

С другой стороны, использование макроса сборки из шага make-файла является достаточно хорошим способом использования Visual Studio для разработки драйвера и его сборки с помощью инструментария сборки, используемого WDK.

Имеется хороший пакетный файл, который вызывает необходимую среду сборки и перенаправляет вывод ошибок на панель вывода Visual Studio.

Чтобы уточнить, я использую проект makefile в Visual Studio, где добавляются все исходные файлы, при сборке я вызываю пакетный файл, который в свою очередь вызывает ddkbuild с правильными параметрами.

0 голосов
/ 22 марта 2011

Просмотр DDKWizard .Он решает именно ту проблему, которую вы решаете, и делает это хорошо.

...