Почему сборка драйверов с помощью Visual Studio плохая - PullRequest
12 голосов
/ 05 июня 2011

Компоновщик Microsoft Visual Studio имеет a /DRIVER флаг специально для сборки драйверов:

Используйте параметр компоновщика /DRIVER для создания драйвера режима ядра Windows NT.

Однако Microsoft говорит :

Запрещается создавать драйверы с помощью компилятора или компоновщика, предоставляемого Microsoft Visual Studio.

, который ставит вопрос:

Почему не следует компилировать / связывать драйверы с Visual Studio?

Отличается ли вывод, сгенерированный инструментами DDK / WDK, от вывода, сгенерированного Visual Studio?
Если да, то чем он отличается?


Edit:

Обратите внимание, что я говорю о с использованием компилятора Visual Studio и компоновщика , , а не библиотек!

Я использую заголовки и библиотеки WDK с компиляторами и компоновщиками VS, но Microsoft в частности говорит, что мне нужно избегать этого:

Запрещается создавать драйверы с помощью компилятора или , предоставляемого Microsoft Visual Studio.

Они даже не упомянули заголовки и библиотеки, так что, конечно, это не мой вопрос.

Почему?

1 Ответ

6 голосов
/ 05 июня 2011

Эта статья , думаю, поставила меня на правильный путь.Это связано с тем, что инструменты DDK используют библиотеки времени выполнения, отличные от Visual Studio.

Visual Studio свяжет драйвер с библиотеками среды выполнения, которые он предоставляет (или, необязательно, с последней версией среды выполнения, установленной в системе), но драйвердолжно быть связано с тем же временем выполнения, которое использовалось для сборки самой операционной системы.

...