为什么使用Visual Studio构建驱动程序“不好”?

时间:2011-06-05 09:01:14

标签: visual-studio visual-c++ build kernel driver

Microsoft Visual Studio的链接器a /DRIVER flag专门用于构建驱动程序:

  

使用/DRIVER链接器选项构建Windows NT内核模式驱动程序。

然而,Microsoft says

  

您不能使用Microsoft Visual Studio提供的编译器或链接器构建驱动程序。

引出了一个问题:

为什么我不应该使用Visual Studio编译/链接驱动程序?

DDK / WDK工具生成的输出是否与Visual Studio生成的输出不同?
如果是这样,它有什么不同?


编辑:

请注意,我在谈论使用Visual Studio的编译器链接器 不是库!

我在VS的编译器和链接器中使用WDK头文件和库,但Microsoft 特别表示我需要避免这种情况:

  

您不得使用Microsoft Visual Studio提供的编译器链接器来构建驱动程序。

他们甚至没有提及标题和库,所以当然这不是我的问题。

为什么?

1 个答案:

答案 0 :(得分:6)

我认为,{p> This article让我走上正轨。那是因为DDK工具使用与Visual Studio不同的运行时库。

Visual Studio将链接驱动程序与它提供的运行时库(或者可选地,安装在系统上的运行时的最新版本),但驱动程序应该与用于构建操作系统本身的完全相同的运行时链接