NT DDK的安装以及设备驱动程序的编译
作者:程序员客栈
提交者:eastvc 发布日期:2003-10-19 20:01:54
原文出处:driverdevelop/
经常有人问及如何安装DDK,如何编译第一个设备驱动程序以及如何消除掉编译驱动程序
时出现的大量错误信息. 其实, DDK的安装和驱动程序的编译是很简单的. 为了编译驱动程
序, 你必须首先打开一个DOS窗口, 并正确设置好所需的全部环境变量. 本文假定你将要
安装NT DDK 4.0, 并且在安装NT DDK之前,VC已经被安装在 C:\vcdev\vc\bin\目录下(尽量使
用短的VC路径名称,不要用长的路径命名格式).
可按如下方法安装NT DDK( 其实就是进行一些环境变量的设置), NT DDK的安装并不需要
SDK--如果你已经安装好了VC的话.
1. 从微软或其他站点下载NT
DDK(download.microsoft/download/winntwks40/Install/1998/NT4/EN-US/nt4ddk.zip),
将其安装在硬盘上(本文假定DDK安装目录为c:\ddk).
2. 用任何文本编辑器打开c:\ddk\bin\目录下的setenv.bat文件, 在此文件的第三行(不含空白
行)之后加入如下一行并保存: call C:\vcdev\vc\bin\vcvars32.bat, 具体示例:
@echo off
if "%1"=="" goto usage
rem This will put the SDK headers &; libs first in the search path.
call C:\vcdev\vc\bin\vcvars32.bat
if "%BASEDIR%"=="" goto setbasedir
if NOT "%BASEDIR%"=="%1" goto setbasedir
...
3. 完成步骤1和2之后, 你就可以开始编译第一个设备驱动程序了(本文假定驱动程序选为
checked类型): 顺次进入Programs->Windows NT DDK(Common)->Checked Build
Enviroment, 出现一个 DOS窗口. 使用cd命令进入c:\ddk\src\general\simple\sys目录, 键入
build -c命令即可编译, 然后编译器提示已经成功编译好 ldunld.sys文件并已将此文件拷到
c:\ddk\lib\i386\checked目录中. 运行build命令只编译需要重新编译的文件, 而build -c命令则
强迫编译器重新编译所有的文件.
4.使用cd命令进入c:\ddk\src\general\simple\exe目录, 在DOS提示符下键入NMAKE -f
GETHNDL.MAK 即可在当前目录下生成Win32 控制台程序gethndl.exe,此程序用于调用并测
试在第3步中所生成的ldunld.sys设备驱动程序.
5. 从OSR下载OSR driver load(V2.2), 地址如下: osr/files/osrloaderv22.zip, 然
后进行解压缩, 并将osrloader.exe文件拷贝到c:\ddk\bin 目录中. 运行osrloader, 在 driver
path中敲入C:\DDK\lib\i386\checked\ldunld.sys (或用Browse选取), 点击Register Service按钮,
然后点击Start service按钮, 如能顺利完成这些步骤, 就意味着 ldunld.sys已经被成功注册及
加载了.
6. 从OSR下载OSR debug monitor, 地址如下: osr/files/dbgmon_v3.zip, 然后进
行解
压缩, 并将dbggui.exe文件拷贝到c:\ddk\bin 目录中. 运行dbggui, 选中local mode选项.
7. 切换到DOS 窗口, 转入到 c:\ddk\src\general\simple\exe目录, 运行gethndl, 显示:
Wow - it really worked!!!. 祝贺你,你已经成功地编译并运行第一个设备驱动程序了. 此时在
dbggui中也会出现一些KdPrint()提示信息!
8. 在osrloader中先点击Stop service, 然后再点击Unregister service即可卸载ldunld.sys.
一些注意事项;
1. 如编译DDK中的示范
程序时编译器提示缺少哪个文件, 可用Windows或VC的搜索工具先
找到这个文件, 然后将此文件拷入示范程序所在目录再行编译. 也可对示范程序目录中的
Sources文件进行修改以便使所缺失的路径被包括进来.
2 . 用build命令时出现的一些错误或警告信息, 有时可用build -c命令消除掉.
3. 如遇到last line incomplete错误,可下载一个叫lastline.exe的工具来解决
(grwy.online.ha/dzhang/lastline.exe).
4. 为了使build能正确运行, 在需被编译的源文件目录下面必须有两个文件: SOURCES和
DIRS, 注意这两个文件没有后缀名.
SOURCES的文件格式:
TARGETNAM