日期:2014-05-17 浏览次数:20879 次
零零散散花了一个月的时间初步学习了windows驱动编程,接着开始要制定2013年的学习计划,即将步入另外一个学习战场,于是就将最近学习记录下来,也好将来再返回学习时有点基础。
一、windows驱动安装
1、到官方下载DDK安装,ex : 3790.1830.DDK
2、目录简介
示例代码: 安装目录/src/general/event/sys
编译:build
基本文件:源文件,sources, makefile
二、VC6 驱动设置
1、 Tools->Options->Directories->Executable files->新建 ...\3790.1830\BIN\X86 移到最上边
Tools->Options->Directories->Include files->新建 ...\3790.1830\INC\CRT
Tools->Options->Directories->Include files->新建 ...\3790.1830\INC\DDK\WXP
Tools->Options->Directories->Include files->新建 ...\3790.1830\INC\WXP
Tools->Options->Directories->Include files->新建 ...\3790.1830\INC\DDK\WDM\WXP
Tools->Options->Directories->Library files->新建 ...\3790.1830\LIB\WXP\I386
2、编译设置:适用于NT驱动,WDM驱动
Project->Configurations->Add... 新建编译选项
Project->Setting->C/C++->Project Options
/nologo /Gz /MLd /WZ /WX /Z7 /Od /D WIN32=100 /D _X86_=1 /D WINVER=0x501 /D DBG=1 /Fo "ddk_check1" /Fd "ddk_check1" /FD /c
Project->Setting->Link->Project Options
wdm.lib ntoskrnl.lib /nologo /base:"0x10000" /stack:0x400000,0x1000
/entry:"DriverEntry" /subsystem:console /incremental=no
/pdb:"ddk_check/event.pdb" /debug /machine:I386
/nodefaultlib /out:"ddk_check/event.sys" /subsystem:native
/driver /SECTION:INIT,D /RELEASE /IGNORE:4078
三、VS2003设置
一、配置移到最上面
工具->选项-》项目-》VC++目录-》包含文件-》新建... 3790.1830\inc\crt
工具->选项-》项目-》VC++目录-》包含文件-》新建... 3790.1830\inc\ddk\wxp
工具->选项-》项目-》VC++目录-》包含文件-》新建... 3790.1830\inc\wxp
工具->选项-》项目-》VC++目录-》包含文件-》新建... 3790.1830\inc\ddk\wdm\wxp
工具->选项-》项目-》VC++目录-》库文件-》新建 ...3790.1830\Bin\x86
工具->选项-》项目-》VC++目录-》可执行文件-》新建 ...3790.1830\Bin\x86
项目-》event属性-》配置管理器-》项目上下文-》新建项目配置 + "check"
项目-》event属性-》配置属性-》C/C++-》常规-》调试信息格式@c7
项目-》event属性-》配置属性-》C/C++-》常规-》警告等级@wz
项目-》event属性-》配置属性-》C/C++-》预处理器: WIN32=100;_X86_=1, WINVER=0X501; DBG=1
项目-》event属性-》配置属性-》C/C++-》代码生成-》运行时库 @多线程
项目-》event属性-》配置属性-》C/C++-》代码生成-》缓冲区安全检查 @否
项目-》event属性-》配置属性-》C/C++-》高级-》调用约定 @__stdcall
项目-》event属性-》链接器-》常规-》输出文件 @.sys
项目-》event属性-》链接器-》输入-》附加依赖项@wdm.lib
项目-》event属性-》高级-》入口点 @DriverEntry
项目-》event属性-》高级-》基址@ 0x10000