3.2 makefile文件
makefile文件激活DDK inc目录中的标准构造文件makefile.def。WdmTest项目的makefile文件如下:
!INCLUDE $(NTMAKEENV)/makefile.def
3.3 MakeDrvier.bat文件
MakeDrvier.bat是一个批处理文件,它将调用DDK的setenv命令。setenv.bat文件存在于DDK的bin目录中,用于设置构造过程中的环境变量,同时调用bin目录中的其他批处理文件。
MakeDrvier.bat至少要传递4个参数:DDK基目录(%1)、源驱动器(%2)、源目录(%3)和构造类型(%4)(“free”或“checked”),任何其他的参数(%5……)直接传递给Build。
MakeDrvier.bat首先检查setenv.bat是否存在,然后调用etenv命令为build目标正确设置环境变量,改变目录为源驱动器和源目录,并最后调用build。
MakeDrvier命令文件的屏幕输出出现在Visual Studio Output窗口中。
WdmTest项目的MakeDrvier.bat文件如下:
@echo off
if not exist %1/bin/setenv.bat goto warning
call %1/bin/setenv %1 %4
%2
cd %3
build -b -w %5 %6 %7 %8 %9
echo OK MakeDriver
goto exit
:warning %1
echo Warning %1/bin/setenv.bat not exist
goto exit
:exit
3.4 Makefile构造环境
当创建新的Makefile项目时,Visual Studio缺省提供2个build配置:“Win32 Debug”和“Win32 Release”。为了和DDK配置对应,一般习惯通过“编译-配置”菜单删除这两个配置,并增加2个新的配置:“Win32 Checked”和“Win32 Free”。
对于“Win32 Free”配置,按表3所示设置项目的设定;对于Win32 Checked”配置,在创建命令行中将“free”改为“checked”。
-----表3 Win32 Free配置设置-----
创建命令行 MakeDriver %DDKROOT% C: %WDMDIR%/WdmTest/sys free
重建全部选项 -nmake /a
输出文件名 WdmTest.sys
创建命令行运行MakeDrvier批处理文件,使用DDKROOT和WDMDIR两个环境变量 。
----------------------------------------
3.5 驱动程序的构造与编译
驱动程序编辑完成后,在Visual C++中直接运行“编译”菜单中的“构造 WdmTest”即可进行编译构造驱动程序。
若有错误,则双击错误提示项即可迅速回到源代码中修改。若无错误,则产生驱动程序Wdm Test.sys存放在自由或检查构造目录中。
4 结束语
综上所述,介绍了在Visual Studio中,通过建立Makefile项目,激活“DDK Build”命令行实用程序构造WDM驱动程序的方法。这种方法使我们可以通过改变VC++的设置,从Visual Studio直接构造WDM驱动程序,从而提高驱动程序的开发效率,简化驱动程序的构造过程。
makefile文件激活DDK inc目录中的标准构造文件makefile.def。WdmTest项目的makefile文件如下:
!INCLUDE $(NTMAKEENV)/makefile.def
3.3 MakeDrvier.bat文件
MakeDrvier.bat是一个批处理文件,它将调用DDK的setenv命令。setenv.bat文件存在于DDK的bin目录中,用于设置构造过程中的环境变量,同时调用bin目录中的其他批处理文件。
MakeDrvier.bat至少要传递4个参数:DDK基目录(%1)、源驱动器(%2)、源目录(%3)和构造类型(%4)(“free”或“checked”),任何其他的参数(%5……)直接传递给Build。
MakeDrvier.bat首先检查setenv.bat是否存在,然后调用etenv命令为build目标正确设置环境变量,改变目录为源驱动器和源目录,并最后调用build。
MakeDrvier命令文件的屏幕输出出现在Visual Studio Output窗口中。
WdmTest项目的MakeDrvier.bat文件如下:
@echo off
if not exist %1/bin/setenv.bat goto warning
call %1/bin/setenv %1 %4
%2
cd %3
build -b -w %5 %6 %7 %8 %9
echo OK MakeDriver
goto exit
:warning %1
echo Warning %1/bin/setenv.bat not exist
goto exit
:exit
3.4 Makefile构造环境
当创建新的Makefile项目时,Visual Studio缺省提供2个build配置:“Win32 Debug”和“Win32 Release”。为了和DDK配置对应,一般习惯通过“编译-配置”菜单删除这两个配置,并增加2个新的配置:“Win32 Checked”和“Win32 Free”。
对于“Win32 Free”配置,按表3所示设置项目的设定;对于Win32 Checked”配置,在创建命令行中将“free”改为“checked”。
-----表3 Win32 Free配置设置-----
创建命令行 MakeDriver %DDKROOT% C: %WDMDIR%/WdmTest/sys free
重建全部选项 -nmake /a
输出文件名 WdmTest.sys
创建命令行运行MakeDrvier批处理文件,使用DDKROOT和WDMDIR两个环境变量 。
----------------------------------------
3.5 驱动程序的构造与编译
驱动程序编辑完成后,在Visual C++中直接运行“编译”菜单中的“构造 WdmTest”即可进行编译构造驱动程序。
若有错误,则双击错误提示项即可迅速回到源代码中修改。若无错误,则产生驱动程序Wdm Test.sys存放在自由或检查构造目录中。
4 结束语
综上所述,介绍了在Visual Studio中,通过建立Makefile项目,激活“DDK Build”命令行实用程序构造WDM驱动程序的方法。这种方法使我们可以通过改变VC++的设置,从Visual Studio直接构造WDM驱动程序,从而提高驱动程序的开发效率,简化驱动程序的构造过程。