1、首先在VS2005中建立一个C++ DLL的空项目
2、打开配置管理器,新建配置一个配置如myprofile,把myprofile设为活动的。注意不要使用Debug或Realse,否则后面会出现奇怪错误。
3.打开项目配置,点击c/C++页,在附加包含目录中,添加
G:/WinDDK/6001.18002/inc/crt
G:/WinDDK/6001.18002/inc/api;
G:/WinDDK/6001.18002/inc/ddk
分别是CRT,Api,ddk的目录,这个要驱动开发包,安装在哪里了
4、”调试信息格式“ 选择 C7兼容(/Z7) 用Z7模式产生调试信息
5、取消显示启动版权标志 选择 是(/nologo) (默认)
6、警告等级 选择 3 级(/W3)
7、将警告视为错误 选择 是(/WX)
8、在优化选项卡中,禁用/Od
9、预处理中 添加 WIN32=100;_X86_=1;DBG=1 宏
10、在高级中,调用约定使用标准的 __stdcall (/Gz)
11、进入链接器中
12、修改输出文件的扩展名为 sys
13、不启用增量链接
14、在附加依赖项中,添加Wdm.lib,并不继承父级或项目默认设置 “ntoskrnl.lib ntstrsafe.lib hal.lib BufferOverflowK.lib wdm.lib $(NOINHERIT)”
15、不生成清单
16、生成调试信息
17 、进入系统中
18、选择本机子系统
19、选择wdm驱动程序
20、进入高级
21、设置入口点DriverEntry
22、目标计算机 MachineX86 (/MACHINE:X86)
23、随机基址 为默认值
24、数据执行保护DEP为默认值
25、在常规中设置,附加目录 添加
G:/WinDDK/6001.18002/lib/crt/i386;
G:/WinDDK/6001.18002/lib/wxp/i386
下面是测试的代码
1.VS2005新建工程,然后创建一个项目。
2.对项目名称点右键,进入项目属性。点击“常规”
3.上图右栏“项目默认值”中的“配置类型”,
点击,然后选择“生成文件”
然后“应用”,此时该窗口会变为:
4.点击“NMake”,
(我的WDK安装在 C:/WinDDK 目录中)
单击“包含搜索路径”,进行如下设置
C:/WinDDK/6001.18001/inc/api;
C:/WinDDK/6001.18001/inc/ddk
单击“程序集搜索路径”,进行如下设置
单击" "生成"命令行 " ,作如下设置。
(zymakedrv是一个.bat文件,
C:/WinDDK/6001.18001是WDK的安装路径,
E:后面有一个空格,那是项目路径)
zymakedrv C:/WinDDK/6001.18001(空格,然后接下行)
E: /driver/VS2005/notepad/notepad_head chk WXP -e
5. zymakedrv.bat文件的内容(此文件放在项目目录下)
@echo off
if "%1"=="" goto usage
if "%3"=="" goto usage
if not exist %1/bin/setenv.bat goto usage
call %1/bin/setenv.bat %1 %4 %5
rem changing current directory to specified project
%2
cd %3
build.exe -b -w %6 %7 %8 %9 %10
goto exit
:usage
echo zymakedrv.bat usage:
echo.
echo zymakedrv.bat [DDK_path(%%1)] [project_volume(%%2):] [project_path(%%3)] [fre/chk(%%4)] [wxp/wnet/w2k(%%5)] [other_build_options(%%6+)]
echo.
echo options (%%1),(%%4),(%%5) is for setenv.bat which is in DDK_path(%%1)/bin.
echo options (%%2),(%%3) is for changing current directory to specified project.
echo options (%%6+) is for build.exe which is in DDK_path(%%1)/bin/x86.
echo.
echo e.g.
echo zymakedrv.bat D:/tool/develop_tool/WINDDK/3790.1830 D: /source/c_c++/learn/LearnDriver/DriverTest_1 chk wxp -ceZ
rem %0 %1 %2 %3 %4 %5 %6
echo zymakedrv.bat D:/tool/develop_tool/WINDDK/3790 D: /source/c_c++/learn/LearnDriver/SfilterEx chk WXP -e
rem %0 %1 %2 %3 %4 %5 %6
:exit
7.把微软的sfilter示例代码复制出来,新建一个工程,只要做以上修改。就可以编译。