在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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章