提示有5个文件编译错误,1个库文件错误,1个可执行文件错误。感到很奇怪。但是在后续的编译程序【Build】过程中,有一些影响。需要额外处理。
编译驱动程序
两种方式编译驱动程序:
通过设置VC6(或者其他的编译程序工具)进行编译程序
通过WDK自带的Build Check工具进行批处理编译
下面对这两种方式分别进行介绍
(1) 通过VC6.0进行编译环境设置
这个网上有许多教程,这里我就给出一个比较清晰的过程。
VC6设置Include/Lib/Executable目录。
设置为自己需要编译的平台的各个目录即可, Include要确保找到ntddk.h等,Lib与Include对应,Executable 要确保能找到cl.exe
例如XP平台下设置为:
include包含部分:
C:\WinDDK\7600.16385.1\inc\ddk
C:\WinDDK\7600.16385.1\inc\api
C:\WinDDK\7600.16385.1\inc\crt
lib连接库包含部分:
C:\WINDDK\7600.16385.1\LIB\WXP\I386
C:\WINDDK\7600.16385.1\LIB\WIN7\I386
执行文件包含:
C:\WINDDK\7600.16385.1\BIN
C:\WINDDK\7600.16385.1\BIN\X86
C:\WinDDK\7600.16385.1\bin\x86\x86
对于VC原有的路径,Include 和 Lib建议都删除掉,而Executable则将你新加的置顶,顺序不能错。其余建议保留(虽然编译驱动不会使用VC的Bin目录下的ml.exe、link.exe 等,但vc的代码提示等功能是需要bin目录下的一些程序来完成的,因此还是至少要保留VC原有的Bin目录,但必须在DDK的之后)。
建立一个空工程,Exe或者Dll都可以,然后直接修改工程属性:
要改的地方不少,描述各个选项还不如直接记录个文本的,清空C/C++和Link下面的Option文本框,按下面的填写。
C/C++ 选项填写:
/nologo /Gz /MLd /W3 /WX /Z7 /Od /D WIN32=100 /D _X86_=1 /D WINVER=0x500 /D DBG=1 /Fo"MyDriver_Check/" /Fd"MyDriver_Check/" /FD /c
LINK 选项填写:
NT式驱动为
ntoskrnl.lib /nologo /base:"0x10000" /stack:0x400000,0x1000 /entry:"DriverEntry" /subsystem:console /incremental:no /pdb:"MyDriver_Check/HelloDDK.pdb" /map:"MyDriver_Check/HelloDDK.map" /debug /machine:I386 /nodefaultlib /out:"MyDriver_Check/HelloDDK.sys" /subsystem:native /driver /SECTION:INIT,D /RELEASE /IGNORE:4078
WDM式驱动为
wdm.lib /nologo /base:"0x10000" /stack:0x400000,0x1000 /entry:"DriverEntry" /subsystem:console /incremental:no /pdb:"SYS_Check/HelloWDM.pdb" /debug /machine:I386 /nodefaultlib /out:"SYS_Check/HelloWDM.sys" /subsystem:native /driver /SECTION:INIT,D /RELEASE /IGNORE:4078
(2) 通过WDK自带的Build Check工具进行编译程序
这一步,需要将所编写的程序源.cpp文件.h文件以及相应的SOURCES和MAKEFILE文件放在一个新的文件中,然后将这个文件尽量放在路径比较短的C:\下面,随后,进入【Build Check】,cd 所建立的源文件中,然后,输入build命令。
我在开始的时候没有将上述文件放在路径比较短的C:\下面,就会出现各种奇怪的报错现象。在这里碰了钉子。
错误状况如下:
但是如果将所编写的文件放在了C:\目录下面,这时就能够正常的build过程了。生成驱动文件.sys文件。如下所示:
这样就能够得到正确的sys驱动文件。
至于其他的将驱动文件进行安装的过程,需要的步骤就比较简单。个人在配置这个过程中碰到一些问题,希望能够将经验进行分享给各位进行内核驱动编程和调试的朋友。不要因为环境一时半会没有搭建成功而将自己学习的热情和激情给打击了。坚持下去,就能有所进步。
如有需要,可以与我联系这些工具。
期待一起学习交流。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课