NT DDK的安装以及设备驱动程序的编译

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
作者:程序员客栈

提交者:eastvc 发布日期:2003-10-19 20:01:54
原文出处: http://www.driverdevelop.com/


经常有人问及如何安装DDK,如何编译第一个设备驱动程序以及如何消除掉编译驱动程序
时出现的大量错误信息.  其实, DDK的安装和驱动程序的编译是很简单的. 为了编译驱动程
序, 你必须首先打开一个DOS窗口, 并正确设置好所需的全部环境变量.    本文假定你将要
安装NT DDK 4.0, 并且在安装NT DDK之前,VC已经被安装在 C:/vcdev/vc/bin/目录下(尽量使
用短的VC路径名称,不要用长的路径命名格式).   

可按如下方法安装NT DDK( 其实就是进行一些环境变量的设置), NT DDK的安装并不需要
SDK--如果你已经安装好了VC的话.  

1.  从微软或其他站点下载NT  
DDK(http://download.microsoft.com/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), 地址如下: http://www.osr.com/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, 地址如下: http://www.osr.com/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的工具来解决
(http://grwy.online.ha.cn/dzhang/lastline.exe).
4. 为了使build能正确运行, 在需被编译的源文件目录下面必须有两个文件: SOURCES和
DIRS, 注意这两个文件没有后缀名.

SOURCES的文件格式:

TARGETNAME=drivername , 本参数用于指定生成的设备驱动程序名称(不需后缀名),所产
生的文件为drivername.sys.

TARGETPATH=./lib,  本参数用于指定生成的设备驱动程序所存放的路径. 一般采用./lib.
TARGETTYPE=DRIVER, build能够生成许多不同的目标对象,设备驱动程序一般选用
DRIVER.
INCLUDES=path1;path2;..., 本参数是可选的, 用于指定其他的#include文件的搜索路径.    
TARGETLIBS=lib1;lib2;..., 本参数是可选的, 用于指定其他的lib库文件的搜索路径.    
SOURCES=file1.c  file2.c ...,   本参数用于指定需被编译的全部源文件名称, 后缀名不能省
略,文件名之间用空格分开.  

DIRS文件格式:
DIRS文件用于指定在当前目录下必须创建的子目录。DIRS文件的内容由一系列用空格分
开的目录名组成,  /可用于表示对上一行的继续.
DIRS = /
             subdir1 /
             subdir2 /
             subdir3

当前目录下如果只有DIRS文件而没有SOURCES, 则表示没有任何源文件需要编译,但需在
当前目录下创建子目录, 只有SOURCES文件而没有DIRS则表示有源文件需要编译但不需
创建子目录. 二者都有则表示有源文件需要编译且需创建子目录.

5.  BUILD在编译时将会在TARGETPATH和当前目录下创建子目录或文件. 对于一般的
Intel平台, 以c:/ddk/src/general/simple/sys为例说明, 编译完后Build在sys目录下创建子目录
obj/i386/用于存放ldunld.obj. 在c:/ddk/lib/i386/checked保存编译好的ldunld.sys文件.

6. 如果你将设备驱动程序的类型从checked转到free, 则第一次编译源文件的free类型驱动
程序时你必须使用build 的-c选项来编译.
7. 可以使用regedit或regedit32来在注册表中加入驱动程序的表项, ldunld.ini的内容:

/registry/machine/system/currentcontrolset/services/Ldunld
    Type = REG_DWORD 0x00000001
    Start = REG_DWORD 0x00000003
    Group = Extended base
    ErrorControl = REG_DWORD 0x00000001

运行regini ldunld.ini即可加入相应的注册表项.

7. 在ddk的src目录下有许多示范程序可供参考.

8.  经过一些繁琐的设置,也可以在VC中直接编译驱动程序
(http://grwy.online.ha.cn/dzhang/insider17.pdf和
http://www.computerworld.com.cn/99/tips/9904/040601_03.asp).

NT4-DDK:在2K环境下构建操作系统内核开发详解.zip Windows NT 4.0 Device Driver Kit (DDK) 是为开发者提供的工具套件,它允许开发者创建与Windows NT 4.0操作系统兼容的驱动程序DDK包含了一系列的头文件、库文件、工具以及文档资料,这些组件共同工作,以简化开发过程,并确保驱动程序的性能和稳定性。在驱动程序开发过程中,编译器、链接器与调试器是最基本的开发工具,每一个都有其独特的功能和作用。编译器编译器的主要作用是将高级语言代码转换成机器可以理解的机器代码。 阅读详情

相关推荐

Osr Driver Loader 3.0驱动加载卸载工具.rar

软件介绍: 从osr官网获得的最新3.0版本的驱动加载卸载工具Osr Driver Loader,OsrLoader支持xp/win7系统,非常简单易用的驱动工具。填写驱动路径,驱动启动参数,注册服务开始服务即可。

visual studio 2019 + WinDDK 7600.16385.0编写驱动

驱动版本WinDDK 7600.16385.0 IDE:visual studio 2019 新建空白项目 配置类型从exe改为生成文件 配置完后,配置属性中就只剩基础配置了,没有C/C++、链接器等配置,因为驱动程序需要通过ddk编译,所以其他配置也是没用,自己配置编译程序的命令行即可 添加makefile和source文件 makefile是默认的,不需要修改的 # # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want .

youyudexiaowangzi的专栏 2851

OsrLoader3.0驱动加载卸载工具

去osr官网注册、下载的最新3.0版本,能支持xp,win7系统,非常简单易用的驱动工具。

NTDDK 从两个最简单的驱动谈起

第 1 章 从两个最简单的驱动谈起 Windows 驱动程序的编写,往往需要开发人员对 Windows 内核有深入了解和大量的内 核调试技巧,稍有不慎,就会造成系统的崩溃。因此,初次涉及 Windows 驱动程序开发的 程序员,即使拥有大量 Win32 程序的开发技巧,往往也很难入门。 本章向读者呈现两个最简单的 Windows 驱动程序,一个是 NT 式的驱动程序,另一个 是 WDM 式的...

墨鱼菜鸡 759

VC知识库文章 - NT DDK安装以及设备驱动程序编译

导读: 经常有人问及如何安装DDK,如何编译第一个设备驱动程序以及如何消除掉编译驱动程序 时出现的大量错误信息.  其实, DDK安装和驱动程序编译是很简单的. 为了编译驱动程 序, 你必须首先打开一个DOS窗口, 并正确设置好所需的全部环境变量.    本文假定你将要 安装NT DDK 4.0, 并且在安装NT DDK之前,VC已经被安装在 C:/vcdev/vc/bin/目录下(

xu的blog 1493

Windows NT 设备驱动程序开发基础(8) (转)

Windows NT 设备驱动程序开发基础(8) (转)[@more@]1.4驱动程序编译链接,调试、安装和启动。windowsNT下编写驱动程序的环境被称为为DDK(DevicedriverKit)ForM...

csd3176的博客 184

nt4-ddk,压缩包,2k环境下安装编译nt4的

nt4-ddk,压缩包,2k环境下安装编译nt4的

NTDDK开发包(usb驱动开发相关)

先前CSDN上面那个开发包里面没有setupapi.h这个文件,我这个是添加了以后的,包含那个.h文件。

微软Windows NT4的DDK开发包

微软Windows NT4的DDK开发包,欢迎下载!

驱动开发入门winnt

本书中的样例程序都是 Windows NT 内核模式设备驱动程序。 本章介绍构建驱动程序以及理解本书样例所需的信息。但是本章可不是驱动程序大全,详尽讨论驱动程序的最好的信息来源就是 Art Baker 所著的 The Windows NT Device Driver Book: A Guide for Programmers 和 Windows NT Device Driver Kit (DD

1630

Windows NT 设备驱动程序开发基础(8)

1.4 驱动程序编译链接,调试、安装和启动。         Windows NT下编写驱动程序的环境被称为为DDK(Device Driver Kit) For Micro soft Windows NT,这是一个命令行下的工作环境。但是在安装DDK之前需要安装Win32 SDK(Software Development Kit)以及 Microsoft Visual C++。        

kingzeus的专栏 2138

WINDOWS XP下驱动开发环境设置(DDK+VC6.0)

通常驱动程序的调试都是用ddk在cmd中完成的。这部分我暂时略过。下面先介绍如何设置vc++6.0在Visual Studio 6.0集成环境中开发设备驱动程序的方法。 在Windows上,Windows DDK提供的开发环境是基于命令行的,操作起来极为不便,而Visual Studio 6.0给我们提供了非常友好易用的集成环境,让我们有如虎添翼之感。   那么,能否利用Visual Studio的集成环境来开发驱动程序呢?答案是可以的。通过对Visual Studio集成环境的简单设置,创建好自己的驱动开

hutao1101175783的专栏 1295

PCI设备Windows NT平台驱动程序设计

引言在设计和使用PCI设备时,经常要在PC机的软件中访问和控制硬件设备,但Windows操作系统 (Windows NTWindows2000、WindowsXP)为了保证系统的安全性、稳定性和可移植性,对应用程序访问硬件资源加以限制,这就要求设计设备驱动程 序以实现PC机的软件对PCI设备的访问。内核(Kernel)模式的驱动程序可以应用于WINDOWS NTWINDOWS 20

mingjie_520的专栏 1365

WDM驱动程序设计之编译安装

WDM驱动程序设计之编译安装篇(作者:苏金国 2000年11月09日 13:26)设计开发好自己的WDM驱动程序后,为了运行该驱动程序,我们必须编译安装它们。   ■编译设备驱动程序的方法   安装DDK后,在DDK程序组下有Check和Free两个编译环境,Check环境用于编译带调试信息的驱动程序,Free则是编译正式发布版本的环境。通常情况下设备驱动程序编译采用命令行的方式。通过一定的设

tchaikov的专栏 990

模块化的设备驱动程序设计方法

导读:   (1.辽宁工程技术大学机械工程学院,辽宁阜新123000;2.华中科技大学材料科学与工程学院,湖北武汉430074)   摘 要:介绍了Windows NT设备驱动程序的开发环境,一种模块化的设计方法,应用程序与驱动程序之间的同步以及驱动程序安装。  模块化的设备驱动程序设计方法刘冠权1,程俊廷1,刘帅军2(1.辽宁工程技术大学 机械工程学院,辽宁阜新 1230

bluesun777的专栏 1740
上一篇: 自己构造 Create IRP
下一篇: 在VC中编译驱动
iiprogram
博客等级 码龄25年 1066粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值