通常编译驱动都是使用DDK中的Build.exe,由于它是命令行程序,使用很不方便。其实在VC++中也可以编译
驱动,而且设置的方法也有很多,下面是其中一种,我想也是最常用的。
一般使用VC++编译驱动,可以建立一个Win32 (x86) Application工程,然后将所有Windows程序中的编译开关
都删除,最后添加编译驱动的开关就行了。
"$(ddkroot)/inc/ddk"和"$(ddkroot)/inc"为DDK头文件目录。
DBG为编译方式,1为Debug,0为Release。
_X86_表示Intel平台驱动
添加int64.lib ntoskrnl.lib hal.lib三个库文件,并使用/nodefaultlib忽略其他默认库
/libpath:"$(ddkroot)/libchk/i386"设置DDK库文件目录
/base:"0x10000"修改基址,应用程序使用0x40000,驱动使用0x10000
/entry:"DriverEntry"驱动入口函数
-driver表示连接内核驱动
-subsystem:NATIVE,5.00表示子系统为Native
下面是一个名为TestDriver的dsp文件,修改TestDriver可以实现名字的改变,有兴趣的朋友可以写个程序。
如果要用在XP或2003,还需要修改其他一些编译开关,例如:_WIN32_WINNT=0x500
dsp文件内容:
dsw文件内容:
驱动,而且设置的方法也有很多,下面是其中一种,我想也是最常用的。
一般使用VC++编译驱动,可以建立一个Win32 (x86) Application工程,然后将所有Windows程序中的编译开关
都删除,最后添加编译驱动的开关就行了。
"$(ddkroot)/inc/ddk"和"$(ddkroot)/inc"为DDK头文件目录。
DBG为编译方式,1为Debug,0为Release。
_X86_表示Intel平台驱动
添加int64.lib ntoskrnl.lib hal.lib三个库文件,并使用/nodefaultlib忽略其他默认库
/libpath:"$(ddkroot)/libchk/i386"设置DDK库文件目录
/base:"0x10000"修改基址,应用程序使用0x40000,驱动使用0x10000
/entry:"DriverEntry"驱动入口函数
-driver表示连接内核驱动
-subsystem:NATIVE,5.00表示子系统为Native
下面是一个名为TestDriver的dsp文件,修改TestDriver可以实现名字的改变,有兴趣的朋友可以写个程序。
如果要用在XP或2003,还需要修改其他一些编译开关,例如:_WIN32_WINNT=0x500
dsp文件内容:
-
- # Microsoft Developer Studio Project File - Name="TestDriver" - Package Owner=<4>
- # Microsoft Developer Studio Generated Build File, Format Version 6.00
- # ** DO NOT EDIT **
-
- # TARGTYPE "Win32 (x86) Application" 0x0101
-
- CFG=TestDriver - Win32 Debug Build
- !MESSAGE This is not a valid makefile. To build this project using NMAKE,
- !MESSAGE use the Export Makefile command and run
- !MESSAGE
- !MESSAGE NMAKE /f "TestDriver.mak".
- !MESSAGE
- !MESSAGE You can specify a configuration when running NMAKE
- !MESSAGE by defining the macro CFG on the command line. For example:
- !MESSAGE
- !MESSAGE NMAKE /f "TestDriver.mak" CFG="TestDriver - Win32 Debug Build"
- !MESSAGE
- !MESSAGE Possible choices for configuration are:
- !MESSAGE
- !MESSAGE "TestDriver - Win32 Debug Build" (based on "Win32 (x86) Application")
- !MESSAGE "TestDriver - Win32 Release Build" (based on "Win32 (x86) Application")
- !MESSAGE
-
- # Begin Project
- # PROP AllowPerConfigDependencies 0
- # PROP Scc_ProjName ""
- # PROP Scc_LocalPath ""
- CPP=cl.exe
- MTL=midl.exe
- RSC=rc.exe
-
- !IF "$(CFG)" == "TestDriver - Win32 Debug Build"
-
- # PROP Use_MFC 0
- # PROP Output_Dir "Debug"
- # PROP Intermediate_Dir "Debug"
- # PROP Ignore_Export_Lib 0
- # PROP Target_Dir ""
- # ADD CPP /nologo /Gz /W3 /Gm /Gi /Zi /Od /I "$(ddkroot)/inc/ddk" /I "$(ddkroot)/inc" /D DBG=1 /D "_X86_" /D _WIN32_WINNT=0x500 /c
- # ADD BASE RSC /l 0x804
- # ADD RSC /l 0x804
- BSC32=bscmake.exe
- LINK32=link.exe
- # ADD BASE LINK32 /machine:IX86
- # ADD LINK32 int64.lib ntoskrnl.lib hal.lib /nologo /base:"0x10000" /entry:"DriverEntry" /machine:I386 /nodefaultlib /out:"Debug/TestDriver.sys" /libpath:"$(ddkroot)/libchk/i386" -driver -subsystem:NATIVE,5.00
- # SUBTRACT LINK32 /pdb:none
-
- !ELSEIF "$(CFG)" == "TestDriver - Win32 Release Build"
-
- # PROP Use_MFC 0
- # PROP Output_Dir "Release"
- # PROP Intermediate_Dir "Release"
- # PROP Ignore_Export_Lib 0
- # PROP Target_Dir ""
- # ADD CPP /nologo /Gz /W3 /Gi /I "$(ddkroot)/inc/ddk" /I "$(ddkroot)/inc" /D DBG=0 /D "_X86_" /D _WIN32_WINNT=0x500 /c
- # ADD BASE RSC /l 0x804
- # ADD RSC /l 0x804
- BSC32=bscmake.exe
- LINK32=link.exe
- # ADD BASE LINK32 /machine:IX86
- # ADD LINK32 int64.lib ntoskrnl.lib hal.lib /nologo /base:"0x10000" /entry:"DriverEntry" /machine:I386 /nodefaultlib /out:"Release/TestDriver.sys" /libpath:"$(ddkroot)/libfre/i386" -driver -subsystem:NATIVE,5.00
- # SUBTRACT LINK32 /pdb:none
-
- !ENDIF
-
- # Begin Target
-
- # Name "TestDriver - Win32 Debug Build"
- # Name "TestDriver - Win32 Release Build"
- # Begin Group "Source Files"
-
- # PROP Default_Filter "cpp;c;cxx;rc;bat"
- # End Group
- # Begin Group "Header Files"
-
- # PROP Default_Filter "h;hpp"
- # End Group
- # End Target
- # End Project
-
-
dsw文件内容:
- Microsoft Developer Studio Workspace File, Format Version 6.00
-
- # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-
-
- ###############################################################################
-
-
-
- Project: "TestDriver"=./TestDriver.dsp - Package Owner=<4>
-
-
-
- Package=<5>
-
- {{{
-
- }}}
-
-
-
- Package=<4>
-
- {{{
-
- }}}
-
-
-
- ###############################################################################
-
-
-
- Global:
-
-
-
- Package=<5>
-
- {{{
-
- }}}
-
-
-
- Package=<3>
-
- {{{
-
- }}}
-
-
-
- ###############################################################################
-
-