ddk Windows 驱动编译环境配置,安装及调试

对 Windows驱动开发技术详解 第三章的(Windows 驱动编译环境配置,安装及调试)自我理解 BY:ALALMN—飞龙 QQ:316118740 BLOG:http://hi.baidu.com/alalmn 这章主要讲软件调试和NT式和WDM式 驱动 加载方式 NT式和WDM式 驱动 加载 NT式驱动采用服务加载就可以了 WDM式驱动采用INF文件加载 DDK Checked 可以查看到调试信息 调试版 Free 不可以查看到调试信息 发布版 VC++ Release 不可以查看调试信息 Debug 可以查看调试信息 调试信息 kdPrint(("enter hello/n")); kdPrint(("%senter hello/n",abc)); 使用DbgView就可以看到调试信息了(好像还有很多这样的软件吧) 建立驱动程序工程 工程设置—C/C++—工程 选项— /nologo /Gz /MLd /W3 /WX /Z7 /Od /D WIN32=100 /D _X86_=1 /D WINVER=0x500 /D DBG=1 /Fo"MyDriver_Check/" /Fd"MyDriver_Check/" /FD /c /nologo 代表不显示编译的版权信息 /Gz 默认函数调用采用标准调用(_stdcall) /MLd /W3 采用第三级的警告模式 /WX 将警告信息变成错误信息,最大程度保证了代码的可靠性 /Z7 用Z7模式产生调试信息。VC默认的Program Database for"Edit & Continue",这个和link的/driver选项冲突 /Od 关闭调试模式。驱动程序不需要像Win32程序那样的VC调试器调试,而需要用内核调试器调试 /D WIN32=100 /D _X86_=1 /D WINVER=0x500 /D DBG=1 定义一些宏,这些是必须的。 /Fo"MyDriver_Check/" 设置中间生成的目标代码的路径 /Fd"MyDriver_Check/" 设置pdb文件的目录位置,pdb文件中包含了大量的符号,这是调试驱动时候必须的 /FD 生成文件依赖 /c 只进行编译,而不连接 工程设置—链接—工程 选项— ntoskrnl.lib /nologo /base:"0x10000" /stack:0x400000,0x1000 /entry:"DriverEntry" /subsystem:console /incremental:no /pdb:"MyDriver_Check/HelloDDK.pdb" /debug /machine:I386 /nodefaultlib /out:"MyDriver_Check/HelloDDK.sys" /pdbtype:sept /subsystem:native /driver /SECTION:INIT,D /RELEASE /IGNORE:4078 ntoskrnl.lib NT驱动程序需要连接此库。如果是WDM驱动程序,则需要连接wdm.lib /nologo 连接时不显示版本信息 /base:"0x10000" 加载驱动时,设定加载在虚拟内存中的位置 /stack:0x400000,0x1000 设顶函数使用堆栰的大小 /entry:"DriverEntry" 入口函数的地址,此函数必须是符号标准函数调用的。 /subsystem:console 设置子系统 /incremental:no 非递增式的链接 /pdb:"MyDriver_Check/HelloDDK.pdb" 设置pdb文件的文件名 /debug 以debug方式连接 /machine:I386 产生代码是386兼容平台的 /nodefaultlib 不是用默认的库 /out:"MyDriver_Check/HelloDDK.sys" 输出二进制代码的名称 /pdbtype:sept 设置pdb文件类型 /subsystem:native 子系统是内核系统 /driver 编译驱动 /SECTION:INIT,D 将INIT的段设置为可抛弃的 /RELEASE /IGNORE:4078 忽略4078号警告错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值