因公司项目需要,开始了新的学习历程:使用DDK开发硬件驱动。
虽然在原来公司接触过驱动开发(仅项目维护),但没有亲自动手开发过驱动,所以这次只能通过论坛和资料开始这个历程了。
DDK安装盘和相关资料可以通过电驴客户端搜索得到,驱动开发论坛主要是驱动开发网。
首先从《Windows2000设备驱动程序设计指南.pdf》电子影印版着手,由于没有配套光盘,只能自己分析和摸索。通过在虚拟机上不断的安装测试,终于搞定了最简单的非WDM驱动,在此记录一下。
从配置篇开始一系列的驱动开发实践……
配置编
安装完DDK后就开做一些方便开发的环境配置了,假设DDK安装的位置是“C:\WINDDK”。
1. 将DDK的安装位置添加到系统环境变量:DDKROOT=C:\WINDDK,下一步可以使用%DDKROOT%得到DDK的安装位置。
2. 分别给w2k和wxp配置环境设置批处理文件(视环境情况选择配置):
%DDKROOT%\bin\startddk_w2k.bat文件的内容(安装时要选择w2k的头文件部分):
@echo off
call %DDKROOT%\bin\w2k\set2k.bat %DDKROOT% checked
cd /d %1
cmd.exe
%DDKROOT%\bin\startddk_wxp.bat文件的内容(安装时要选择wxp的头文件部分):
@echo off
call %DDKROOT%\bin\setenv.bat %DDKROOT% checked
cd /d %1
cmd.exe
如果想编译free版本可以把checked修改成free,也可以自由发挥改成参数形式。
3. 分别写注册表项添加文件
w2k.reg内容:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\DDK Command\command]
@="\"C:\\WINDDK\\bin\\startddk_w2k.bat\" \"%1\""
wxp.reg的内容:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\DDK Command\command]
@="\"C:\\WINDDK\\bin\\startddk_wxp.bat\" \"%1\""
4. 根据操作系统版本加载不同的reg文件。加载后在资源管理器中右击驱动源码所在的目录选择“DDK_Command”菜单即可进入已经配置好DDK环境的命令行模式。
5. 常用编译驱动的命令是“build -b -w -c -e -f”,用“build -?”可以看到相关选项说明。
现在可以试试去编译%DDKROOT%\src下的各个例子程序了。