怎么用Visual Studio编译内核驱动

怎么用Visual Studio编译内核驱动,第1张

在Win8以前开发内核驱动,准备编译环境是个较繁琐的事情。程序员需要手动下载WDK并安装(注1),开发环境就在安装好的WDK中。WDK是Windows Driver Kit缩写,即Windows驱动开发包。它提供的开发环境简陋得很,它不是一个便于开发的IDE环境,而仅仅是一些散装的编译工具包。

安装好WDK后,WDK的编译环境链接就显示在开始菜单中了,要小心不能将它们删掉,否则会麻烦,因为手动生成链接是麻烦事,后文会讲。

编译环境是分类的。首先根据目标系统分类,也就是要编译生成运行在什么OS上的目标文件。微软大部分的产品都保持了向后兼容的习惯,这条规律也适用于此处:使用Win7子系统环境编译出来的驱动文件,一般都能运行在Vista和XP系统上,反之就不会成立(注2)。

其次根据硬件平台分类,现在Windows系统能够运行的平台有四个:X86,X64,IA64和ARM。其中ARM是Win8才开始的故事,这里还轮不到它出场,这样就只有前面三个硬件平台(注3)。

最后又要根据编译版本来分,即Checked(也可认做Debug)和Free(也可认作Release)这两种。这样来看,每个OS组别下面,就一定有6个编译环境链接。

在这本书里面,如果用旧版本WDK编译驱动,就默认使用Win7目标系统的编译环境,生成Checked版本,目标平台是X86或X64。所以就只会选两种:X86 Checked Build Environment和X64 Checked Build Environment.

编译环境打开来其实就是个控制台。它当然不同于直接从cmd.exe运行起来的控制台环境,区别在哪里呢?我们已经知道,上图的这些黑色的编译环境图标,其实都是快捷方式。不妨就看看它的快捷方式的Target内容,或许就知道端倪了。以X64 Checked Build Environment这个环境为例,打开来看到如下内容:

C:\Windows\System32\cmd.exe /k C:\WinDDK\7600.16385.1\bin\setenv.bat C:\WinDDK\7600.16385.1\ chk x64 WIN7

这一行内容仔细一看就很简单了。原来所谓的编译环境,就是一个运行cmd.exe的控制台进程,只不过它执行了用于初始化的/k参数。在Cmd.exe命令的帮助中,/k参数是这样描述的:Carries out the command specified by string but remains(执行一个命令,执行完之后不退出程序)。也就是说,启动控制台进程并执行命令,执行完后,控制台程序留给用户继续使用。

那么/k之后的所有内容,都是一条初始化的命令:

C:\WinDDK\7600.16385.1\bin\setenv.bat C:\WinDDK\7600.16385.1\ chk x64 WIN7

它却又可拆成几个部分来分析。第一个setenv.bat是初始化编译环境的批文件。后面的是它的参数:第一个参数,是WDK的路径,通过它可以找到编译器程序;第二个参数是指明要编译生成checked版本目标文件;第三个指明硬件平台是x64;第三个指明目标系统是Win7。

位于WDK中的Setenv.bat文件是负责编译环境配置的总厨,你把什么参数递给它,它就给你配出什么类型的编译环境来(菜也)。

怎么在这个控制台里面编译驱动呢?我们统一用使用以下步骤:

通过CD命令,定位到含有source文件的那个驱动目录;

输入build或bld(build –cz的简写)命令进行编译;

如果编译成功,将生成驱动文件,否则会有错误或警告信息显示出来;也可通过查看目录文件夹下面的相关log文件查看详细的错误或警告信息。

走到这里,编译的事情算弄明白了。可能还会有朋友问我,我用什么东西写代码呢?不好意思,关于这个问题,此时还没有康庄大道供大家驷马高车,不过千万条小路却是现成的。您可以用notepad记事本或者任何文本编辑器来编辑代码,如果不嫌麻烦,用Visual Studio写代码也可以,只不过仅作代码编辑而已。

需要win 7 sp1系统和ie10或者IE11.Win7上安装vs2015 RC(候选发布版)失败完美解决方法,包含了Win7 SP1下载地址,IE10下载地址,IE11下载地址,在windows 7 *** 作系统上安装Visual Studio 2015,发生下面的错误:

解决方案:

可以手动安装目录packages\Patch 下根据 *** 作系统32,64 位系统安装对应的补丁:

安装完成补丁KB2999226,就可以正常的安装Visual Studio 2015

失败条件1:

Windows NT版本为6.3,且WindowsBuildNumber <9600,则不能安装。NT6.3是指windows 8.1系统或Windows Server 2012 R2,6.x是内核版本。如果是这个 *** 作系统版本,且build版本号低于9600,则不能安装。

失败条件2:

兼容模式未开启,如果系统不是最新系统,则需要开启兼容模式,否则无法安装。

失败条件3:

*** 作系统是Win7以上版本,或者是Win7版本并且SP包大于等于1的其他情况,则无法安装。这个表示,如果是Win7,则必须安装SP1及以上版本的补丁包。如果你的Win7没有安装补丁包,请先安装,否则无法安装VS2015.如果是更高版本的 *** 作系统,那么就不存在这个问题。

失败条件4:

IE不存在或者IE版本小于10,则无法安装。如果你在Win7上安装IE11,也是需要先安装SP1包。

所以Win7安装VS2015失败的最终的解决方案如下:

1.安装SP补丁包。

2、升级IE位IE10或者IE11

VS不同版本不会冲突:

我的win7刚装好2015,vs版本是不会冲突的,我的电脑上安装着2010,2013,2014,2015。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11176192.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存