Подтвердить что ты не робот

Почему "плохо" создавать драйверы с помощью Visual Studio?

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

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

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

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

который задает вопрос:

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

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


Edit:

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

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

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

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

Почему?

4b9b3361

Ответ 1

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

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