最近要开始做内核驱动了,现实属入门窥探,今花上一小时搞定了VS2010与WDK的配置,记录如下:
1、WDK与VS2010自然要装好啦,似乎学习版的VS2010不行;
2、如下增加一个配置方案名Driver
3、设置Driver的VC++路径(下图已经显示所有需要配置的目录)
4、新建一个cpp后调整C/C++与链接器
常规
目标文件扩展名:.sys
预处理器
预处理器定义:WIN32=100;_X86_=1;WINVER=0x501;DBG=1
高级
调用约定 __stdcall(/Gz)
链接器设置
常规
启用增量链接:否(/INCREMENTAL:NO)
输入
附加依赖项
ntoskrnl.lib;Hal.lib;wdm.lib;wdmsec.lib;wmilib.lib;ndis.lib;MSVCRT.LIB;LIBCMT.LIB
忽略所有默认库:是 (/NODEFAULTLIB)
清单文件
启用用户账户控制(UAC)否
系统(System)
子系统: 控制台(/SUBSYSTEM:CONSOLE)
高级
入口点:DriverEntry
随机基址:清空
数据执行保护(DEP): 清空
基址:0x10000
测试代码
#include "ntddk.h"
NTSTATUS
DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath)
{
return STATUS_UNSUCCESSFUL;
}
1>InitializeBuildStatus:
1> 正在创建“Driver\DriverTest.unsuccessfulbuild”,因为已指定“AlwaysCreate”。
1>ClCompile:
1> DriverTest.cpp
1>Link:
1> DriverTest.vcxproj -> D:\Users\dell\Documents\Visual Studio 2010\Projects\DriverTest\Driver\DriverTest.sys
1>FinalizeBuildStatus:
1> 正在删除文件“Driver\DriverTest.unsuccessfulbuild”。
1> 正在对“Driver\DriverTest.lastbuildstate”执行 Touch 任务。
1>
1>生成成功。
1>
1>已用时间 00:00:03.57
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
参考文贴:
http://www.cppblog.com/guojingjia2006/archive/2011/03/19/142211.html
http://www.afc-sys.com/bbs/forum.php?mod=viewthread&tid=19&highlight=VS2010