在Visual Studio 2005里编译驱动程序

原文地址 http://blogold.chinaunix.net/u/25096/showart_480854.html

http://ddkwizard.assarbad.net/ 下载ddkwizard
 
1. 拷贝 DDKBUILD.bat 和 DDKBUILD.cmd 到DDK安装根目录,如我的是F:\WinDDK.
 
2. 将上述文件的路径添加到系统的path变量(右击我的电脑,系统属性中,最好是System的path变量),路径用分号分隔
 
3. 启动VS2005,打开Tools->Options,选择Projects and Solutions->VC++ Directories,在Show directories for Executable files中添加上面DDKBuild.bat文件所在的路径(这里是F:\WinDDK)
 
4. 根据你所安装的DDK的不同版本添加不同的变量到系统中:
   同第二步一样,在我的电脑的属性中添加,
   2000 DDK: W2KBASE
   XP DDK: WXPBASE
   2003 sp1 DDK: WNETBASE,中的一个.
   这里我的是WNETBASE(值为F:\WinDDK\3790.1830)
 
5. 开始安装DDKWizard,在安装的最后一步你可以选择编辑ddkwizard的配置文件.
 
final,好了,现在你就可以启动VS2005,用它来编译驱动了,咔咔(如果编译时出现不能spawing cmd.exe错误,那就是你把上述的变量添加到了你自己的帐户环境下了)
(注:在安装成功后,在新建项目中有个ddk project选项,可以新建driver项目)
 
配置生产的语句
在新建项目时的配置选项

 原文地址 http://blog.703804.com

 

VS2005集成DDKWizard遇到的问题

————————————————————————————
建立EmptyDriver时,

要在sources文件的第4TARGETTYPE=后面加DRIVER

加入[源文件]后还要在sources文件里的SOURCES=后面加上[源文件名]。比如:
SOURCES=DriverDemo.cpp \
        DriverDemo.h

▲Cannot open include file: \'NTDDK.h\': No such file or directory
解决方案:VS2005/工具/选项/VC++目录/,
[
显示以下内容的目录][包含文件],把DDK包含文件加进目录——
[D:\WINDDK\3790.1830\inc\ddk\wnet]
[D:\WINDDK\3790.1830\inc\wnet]

[显示以下内容的目录][库文件],把DDK库文件加进目录——
[D:\WINDDK\3790.1830\LIB\WNET\I386]

以上DDK的路径要放到最先。

参考自:http://blog.csdn.net/jamesandy/archive/2008/03/17/2192267.aspx

结果:
编译提示错误:
BufferOverflowK.lib(gs_support.obj) : error LNK2019: unresolved external symbol _DriverEntry@8 referenced in function _GsDriverEntry@8
objchk_w2K_x86\i386\Helloworld.sys : fatal error LNK1120: 1 unresolved externals
解决方案:
[入口函数DriverEntry]前加上extern "C"
extern "C"{
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObj, PUNICODE_STRING pRegistryString)
{        /*DriverEntry
函数内容*/          }
}//extern "C"
结果:OK。编译通过

 

 

直接用DDK的命令行工具编译>>>>>>>>>>>>>>>>>>>>>>>>>
————————————————————————————
1
D:\WINDDK下建立工程目录:D:\WINDDK\uu
2
D:\WINDDK\uu下文件清单:
DriverDemo.cpp

 

makefile
代码:

#
# DO NOT EDIT THIS FILE!!!  Edit .sources. 
if you want to add a new source
# file to 
this component.  This file merely indirects to the real make file
# that 
is shared by all the driver components of the Windows NT DDK
#

!INCLUDE $(NTMAKEENV)makefile.def


sources
代码:

TARGETNAME=DriverDemo
TARGETTYPE=DRIVER
DRIVERTYPE=WDM
TARGETPATH=OBJ

INCLUDES=$(DDKROOT)incddkwnet;
         $(DDKROOT)incwnet;

SOURCES=DriverDemo.cpp

打开:开始/程序/……/Windows Server 2003 Checked x86 Build Environment
输入如下:
D:\WINDDK\3790~1.183>cd ..//uu
D:\WINDDK\uu>build

原文件地址:http://blog.csdn.net/xiaou_is_me/archive/2008/05/13/2441117.aspx


发布了9 篇原创文章 · 获赞 2 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章