作为一个Windows下的程序员,我们一般习惯使用VisualStudio IDE作为自己的开发工具,作为一个大的工程,通常包含很多Project,为了使得编译的自动化,也常常采用makefile的方式编译。
下面是我初步研究了某Windows驱动程序,结合《寒江独钓Windows内核安全编程》的source code的编译过程来讲述,如何在Visual Studio2008中配置,内核驱动开发的过程。
1.首先按照VisualStudio2008,以及WDK。
2.新建一个Project,取名为“First”,Solution名称为“KernelModeDriverDevelopment”。“Project Type”选择“Visual C++|Win32”,选择”Win32 Console Application”。下一步,单击“Application Settings”,选择“Console application”,勾选“Empty project”。完成。
3.将source code拷贝到响应的目录下。这里将first相关的文件“first.c”拷贝到Project “First”目录下。
4.在First目录下,创建一个“makefile”
如下:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@文件名为makefile@@@@@@@@@@@@@@@@@@@@
!IF 0
Copyright (C) Microsoft Corporation, 1999 - 2002
Module Name:
makefile.
Notes:
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 components of Windows NT (DDK)
!ENDIF
!INCLUDE $(NTMAKEENV)/makefile.def
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
5在First目录下,创建一个“source”文件
内容如下:
TARGETNAME=first
TARGETTYPE=DRIVER
SOURCES=first.c
TARGETPATH=obj
6,然后就写编译所需的BATCH文件。在在First目录下,创建一个“first_build.bat”的文件
内容如下:
@echo on
@echo build version is %1 for %2
@echo off
if "%4"=="/a" call my_clean %1 %2
pushd
set BASEDIR=../../Tools/6001.18002/
popd
pushd.
call %BASEDIR%/bin/setenv.bat %BASEDIR% %1 %2
popd
@echo on
build
注意,上面的BASEDIR是与所安装的WDK路径相关联的。
同样创建一个“first_clean.bat”的文件
if exist Debug rd /s /q Debug
if exist Release rd /s /q Release
if exist obj%1_%2_x86 rd /s /q obj%1_%2_x86
7.设置Project。
右击First这一Project,选择“Properties”,选择“Configuration Type”为“Makefile”。
单击“NMake”,设置“Build Command Line”为“first_build.bat chk WXP”;设置“Rebuild All Commd Line”为“first_build.bat chk WXP”;设置“Clean Command Line”为“first_clear.bat”.
OK,应该可以build成功啦。
开始你的Windows内核编程之旅吧!