- 平台和配置属性
平台选择x64,配置属性选择Win7 Debug,这是因为我会在虚拟机上运行我们的驱动,而我的虚拟机是Win7 64位。在测试我们的驱动程序时我们最好使用虚拟机进行操作,因为驱动程序很容易照成蓝屏。64位的OS只能加载64位的驱动程序,32位的OS只能加载32位的驱动程序。
2. 设置测试签名
64位的Windows系统在加载驱动时要求驱动必须被签名,我们可以在工程属性中设置一个测试签名。
3. 解决编译错误
直接编译后我们会得到如下的编译错误:
main.c(18): error C2220: 警告被视为错误 - 没有生成“object”文件
main.c(18): warning C4100: “pDevObject”: 未引用的形参
main.c(114): warning C4100: “pRegPath”: 未引用的形参
驱动程序对源代码的要求很高,针对这种未引用的形参错误,我们可以使用一个宏解决,在以上两个未引用形参的函数中分别加上如下代码:
UNREFERENCED_PARAMETER(pDevObject);
UNREFERENCED_PARAMETER(pRegPath);
4. 成功编译
成功编译后就可以在工程目录\x64\Win7Debug文件夹下找到如下文件:
*.sys
*.cer
安装NT驱动程序
安装NT驱动程序需要使用DriverMonitor工具,读者可自行在互联网上下载。代码中我们使用KdPrint来输出调试信息,DbgView工具可以查看这些调试信息,这个工具也需要读者自行在互联网上下载。或者也可以在CSDN上下载猛戳我。
1. 开启测试签名模式
在虚拟机的C:\windows\system32\目录下打开管理员权限的命令行工具输入如下命令:
bcdedit.exe /set TESTSIGNING ON
重启虚拟机后测试签名模式就开启了,关闭测试签名模式的命令是:
bcdedit.exe /set TESTSIGNING OFF
将chapter01-1.sys和chapter01-1.cer拷贝到虚拟机上,安装测试证书chapter01-1.cer。