1、
再谈VC环境配置
A、编译选项C/C++ Project Option
B、链接选项Link Project Option
C、测试所编译驱动
【130】复制 第24课 的代码
【170】用 vs2003编译生成驱动,复制到 虚拟机中。
【185】载入驱动 测试一下
【210】"GO"驱动的时候,报错“ERROR (2001): 指定的驱动程序无效。”
【270】用DDK来编译的话,没有这种问题
【455】看 buildchk_wxp_x86.log
【470】检查发现,有一项“subsystem:native,5.01”,它设置为内核模式
【500】“subsystem:native”对应我们的设置:vs2003-->项目 --> mini_ddk属性 --> 配置属性 --> 链接器 --> 命令行,当时设置的时候 出错了:“/Driver /system:native”,这里改为“/Driver /subsystem:native”
【545】再次vs2003编译
【580】再 放到 虚拟机中测试一下
【625】这时 就能正常的加载/卸载了
【645】一般来说 DDK生成的 驱动文件 要稳定一些
【660】(vs2003中)还有一些项,没有设置,参考 buildchk_wxp_x86.log中的设置
【680】忽略了一些错误(ZC: 警告吧?)
【1050】对应vs2003的设置为:vs2003-->项目 --> mini_ddk属性 --> 配置属性 --> 链接器 --> 命令行:
“/Driver /subsystem:native /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221”
【1130】这个(“INCREMENTAL:NO”)是 值增量链接
【1165】也就是 vs2003里面的这个选项
【1175】buildchk_wxp_x86.log 中的参数,和 vs2003里面的配置 都有对应
【1200】DDK中的参数“STACK:0x40000,0x1000” 对应 vs2003-->项目 --> mini_ddk属性 --> 配置属性 --> 链接器 --> System 中的 “堆栈保留大小”和“堆栈提交大小”,不过 vs2003里面是 十进制的
【1270】DDK中的参数“base:0x10000”:基址
【1275】DDK中的参数“entry:GsDriverEntry@8”:入口函数,这个入口函数,指的是 目标文件(?.obj文件)里面的符号(ZC: symbol)
【1390】vs2003的配置:“/subsystem:native”表示 生成的是内核模式的代码;“/Driver”表示 生成的是驱动,这个大小写无所谓,一般是大写“/DRIVER”
ZC: 这样 vs2003-->项目 --> mini_ddk属性 --> 配置属性 --> 链接器 --> 命令行 里面的内容就变成:
“/DRIVER /subsystem:native /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221”
【1480】DDK中参数“SECTION:INIT,d” 表示,有多个节的时候,忽略它的检测。一般也要把它加上
ZC: 这样 vs2003-->项目 --> mini_ddk属性 --> 配置属性 --> 链接器 --> 命令行 里面的内容就变成:
“/DRIVER /subsystem:native /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /“SECTION:INIT,d”
【1545】vs2003 再次编译测试一下
【1610】测试正常
【1660】vs2003-->项目 --> mini_ddk属性 --> 配置属性 --> 链接器 --> 高级 中的 “目标计算机”可以设置成“MachineX86(/MACHINE:x86)”
【1690】最重要的是“/DRIVER /subsystem:native /SECTION:INIT,D /IGNORE:4078”,表示生成的是 驱动格式。
【1705】“/DRIVER /subsystem:native” 这两项 是必须要要的
2、