-
-
[旧帖] [原创]Windows驱动开发环境搭建详细记录 0.00雪花
-
发表于: 2013-6-14 15:28 1507
-
刚接触驱动的时候搭环境费了好多周折,七找八搜的才算搭起来个健康能运行的环境,不知道看雪有没有我这么菜的选手,在这个露个丑,把搭建的详细过程记了下来,如果有像我一样的小菜,希望能对你有所帮助,节省点时间。
1.需要软件:VMware、Visual Studio、WDK以及官网的ddkbuild.bat和ddkbuild.cmd两个文件、DDKWizard、INSTDRV、DebugView,后两个软件是做调试用。
关于为什么要在虚拟机上开发,我的亲身实践,如果怕麻烦不建虚拟机,结果只能是更麻烦,所以。。。
2.首先安装VMware,在上面安装个XP系统,搭好环境后最好备个份,新手搞驱动开发很容易让系统崩溃的。
3.在虚拟机的XP系统上安装Visual Studio、WDK后,在WDK的安装目录:C:\WinDDK\7600.16385.1下创建一个bat文件夹,将ddkbuild.bat,ddkbuild.cmd放进去。然后安装DDKWizard,我把目录也安装在了C:\WinDDK\7600.16385.1下。
4.软件安装完毕,添加以下两个系统环境变量,右键我的电脑-属性-高级-环境变量。
5.配置Visual Studio,工具-选项-项目和解决方案-VC++目录,添加项的顺序不可随意,编译出现解析符号、重定义等相关问题很可能是顺序有误或者包含文件多了或少了;
可执行文件,添加以下几项,后三项一定要加上,否则编译的时候会报错:
包含文件,添加以下几项:
引用文件,添加以下几项:
库文件,添加以下几项:
源文件,添加以下一项:
6.如果前面的都弄好了,就可以创建驱动程序了,方法如下,新建项目会发现多了一个选项DDK Project,就是驱动项目了,右面选择Driver,确定;
这时出现如下界面,选择Windows XP DDK,Finish即可。
7.编辑你的驱动代码,此处我只在DriverEntry函数中添加了最简单的一句:DbgPrint("my driver test");
启动调试即可,调试会出现如下对话框,点击取消即可,我们调试的目的是生成sys文件:
8.如果以上都成功,会在项目文件夹下生成objchk_win7_x86\i386下生成sys(扩展名)文件。
9.添加注册表项,打开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager,新建项Debug Print Filter,在其下面新建DWORD值,名称DEFAULT,数据0x0000000f,不添加这个在DebugView上看不到打印信息。
10.下面就是测试了,打开DebugView,注意Capture下的Capture Kernel要选中,否则会看不到运行结果。
运行InstDrv,添加刚生成的sys文件的完整路径如下图,先点击安装,再点击执行
如果成功在DebugView中会看到如下结果
这样,第一个驱动程序就运行成功啦。
附:也可用WinDbg进行双机调试,不过我觉得用DebugView比较简单方便,当然如果你需要更细节的调试信息就得用WinDbg了。
1.需要软件:VMware、Visual Studio、WDK以及官网的ddkbuild.bat和ddkbuild.cmd两个文件、DDKWizard、INSTDRV、DebugView,后两个软件是做调试用。
关于为什么要在虚拟机上开发,我的亲身实践,如果怕麻烦不建虚拟机,结果只能是更麻烦,所以。。。
2.首先安装VMware,在上面安装个XP系统,搭好环境后最好备个份,新手搞驱动开发很容易让系统崩溃的。
3.在虚拟机的XP系统上安装Visual Studio、WDK后,在WDK的安装目录:C:\WinDDK\7600.16385.1下创建一个bat文件夹,将ddkbuild.bat,ddkbuild.cmd放进去。然后安装DDKWizard,我把目录也安装在了C:\WinDDK\7600.16385.1下。
4.软件安装完毕,添加以下两个系统环境变量,右键我的电脑-属性-高级-环境变量。
5.配置Visual Studio,工具-选项-项目和解决方案-VC++目录,添加项的顺序不可随意,编译出现解析符号、重定义等相关问题很可能是顺序有误或者包含文件多了或少了;
可执行文件,添加以下几项,后三项一定要加上,否则编译的时候会报错:
包含文件,添加以下几项:
引用文件,添加以下几项:
库文件,添加以下几项:
源文件,添加以下一项:
6.如果前面的都弄好了,就可以创建驱动程序了,方法如下,新建项目会发现多了一个选项DDK Project,就是驱动项目了,右面选择Driver,确定;
这时出现如下界面,选择Windows XP DDK,Finish即可。
7.编辑你的驱动代码,此处我只在DriverEntry函数中添加了最简单的一句:DbgPrint("my driver test");
启动调试即可,调试会出现如下对话框,点击取消即可,我们调试的目的是生成sys文件:
8.如果以上都成功,会在项目文件夹下生成objchk_win7_x86\i386下生成sys(扩展名)文件。
9.添加注册表项,打开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager,新建项Debug Print Filter,在其下面新建DWORD值,名称DEFAULT,数据0x0000000f,不添加这个在DebugView上看不到打印信息。
10.下面就是测试了,打开DebugView,注意Capture下的Capture Kernel要选中,否则会看不到运行结果。
运行InstDrv,添加刚生成的sys文件的完整路径如下图,先点击安装,再点击执行
如果成功在DebugView中会看到如下结果
这样,第一个驱动程序就运行成功啦。
附:也可用WinDbg进行双机调试,不过我觉得用DebugView比较简单方便,当然如果你需要更细节的调试信息就得用WinDbg了。
赞赏
他的文章
- [讨论]我们太需要自己的操作系统了,无论手机还是电脑。 3074
- [原创]驱动层与应用层通信的实现 7210
- [原创]Windows驱动开发环境搭建详细记录 1508
- [求助]HalInitSystem函数运行出错 1188
看原图
赞赏
雪币:
留言: