WDK VC2008 开发调试Win7 64位驱动详细步骤 (2017-04-12 22:43:10)转载▼
标签: it
经本人反复尝试成功搭建并能调试 WIN7 64位驱动,写成博客备忘以供不时之需。
严格按照以下步骤,就可以开发和调试
需要的工具和条件:
WIN7 64位电脑一台
WDK7.1文件GRMWDK_EN_7600_1.ISO
ddkwizard+ddkbuild_bat+ddkbuild_cmd.rar
InstSrv.exe
DebugVieiw.exe
64Signer.exe(数字签名用,可有可无)
VMWare9 安装WIN7 64位虚拟机一台,测试驱动使用。
环境搭建步骤:
1.首先必须要在WIN764位电脑上来安装VS2008,XP电脑貌似无法开发WIN7 64位的东西(试过没成功)。
2.从MS下载和安装WDK7.1 光盘 GRMWDK_EN_7600_1.ISO(自己找就行了),注意安装时不要选DSF.
3.从CSDN下载 ddkwizard+ddkbuild_bat+ddkbuild_cmd.rar 运行ddkwizard ,把ddkbuild.bat ddkbuild.cmd复制到DDK的根目录,如 E:\WINDDK
4.系统环境变量 path后追加 E:\WINDDK ,新建两个系统环境变量 W7BASE WLHBASE 值都是 E:\WINDDK\7600.16385.1
5.启动VS2008 ,进入VC开发环境,工具->选项->项目和解决方案->VC++目录
包含目录 E:\WINDDK\7600.16385.1\inc
库目录 E:\WINDDK\7600.16385.1\lib
6.文件->新建->项目->Visual C++->DDK Project ->Empty driver
名称 EmptyDriver1
确定
7.解决方案 -> Source File ->右键->添加->新建项->C++文件 ->test.c
如果产生的是test.cpp 则 F2改为 test.c,输入以下内容
include
VOID DriverUnload(PDRIVER_OBJECT driver)
{
DbgPrint(“[Test] Hello DriverUnload\r\n”);
}
NTSTATUS DriverEntry(PDRIVER_OBJECT driver,PUNICODE_STRING reg_path)
{
DbgPrint(“[Test] Hello,DriverEntry!\r\n”);
driver->DriverUnload=DriverUnload;
return STATUS_SUCCESS;
}
- 选择 W7X64 Checked ,生成解决方案
9.复制 DebugView.exe InstSrv.exe到虚拟机
10.进入虚拟机,Regedit->HKEY_LOCAL_MACHINE->SYSTEM->Current Control Set ->Control->Session Manager 结点右健,新建->项 Debug Print Filter
加入一个DEFAULT DWORD值 0XF,重启虚拟机,重启时按F8选 禁止驱动强制签名 方式启动
- 将生成的 EmptyDriver1.sys复制到虚拟机桌面,InstSrv.exe ->选择桌面的 EmptyDriver1.sys 安装,先不要启动驱动,此时运行起 DebugView.exe -> Capture Kernel , InstSrv界面点启动驱动。此时就可以看到驱动的调试信息输出在 DebugView.exe 里面了。
启动驱动时,WIN7会弹出一个需要数字签名的提醒,不用管它只是个提示,关掉它就行。
12.也可以用64Signer对sys签名,但测试时需要对虚拟机进行:
以管理员身份运行cm
BCDEDIT - SET TESTSIGNING ON
BCDEDIT - SET TESTSIGNING OFF
打开或关闭系统的调试模式,重启
至此就完成了 WDK+VS2008+WIN7 X64 环境的搭建,和驱动框架的编写和调试。
写这些东西也是为了自己以后再用到时,能够快速拿过来做参考。