Windows DDK要点指南

微软 Windows 9x

设备驱动开发支持组

(OEM/IHV)

We Develop Developers

杨全胜翻译

 

常见问题(FAQ):

DDKGUIDE.DOC

产生时间:

199935
   

最后修改:

199954
  WINDOWS98 DDK要点指南.DOC

翻译时间:

1999113

Copyright © 1999 Microsoft Corporation.

 

目录表

介绍 *

有用的开始文档 *

使用什么样的DDK? *

可用的样本代码 *

DDK的开发做系统准备 *

需要用什么版本的VC++? *

安装和使用Windows 95 Windows 98 DDK的要点 *

概述l *

编译和连接 *

调试 *

Windows 95 的调试 *

Windows 98 的调试 *

SoftIce 的调试 *

调试二进制代码 *

Windows 95 系统调试二进制代码和符号文件 *

在哪找到它们 *

调试二进制和符号文件相关表 *

Windows 98 系统调试二进制代码和符号文件 *

技术细节主题 *

本地存储技术 I/O子系统 (IOS) *

IOS 基础 *

有用的参考材料 *

在哪找到样本代码 *

设置和编译样本代码 *

调试提示 *

Windows IOS版本历史 *

存储技术词汇表 *

 

介绍

本指南是为那些对Windows 95Windows 98设备驱动和通用VxD(虚拟设备驱动程序)的开发还是新手的软件开发者提供友好地帮助。

这篇文档的主要意图是帮助你找到一个快速的和非常有效的自学途径,来学习你感兴趣的特别技术。

一个姊妹文档, Windows 95/98 DDK资源数据库要点, 是一个指向被微软和第三方支持的DDK资源的大的数据库。

有用的开始文档

为了有一个正确的开始,这里给出一张常规资源的表,这些常规资源对任何的Windows 95/98DDK的开发者都是有用的。这个信息是从Windows 95/98 DDK资源数据库要点中用INTRO关键字查找后摘取出来的。

资源类型 主题 如何得到 解释
Book

Systems Programming for Windows 95 Walter Oney (Microsoft Press). 1-55615-949-8 (这是关于Windows95/98DDK开发的最根本的是。从地址http://www.oneysoft.com可以看看网上的勘误表和DDK注释
Book Writing Windows Device Drivers Daniel Norton (Addison Wesley)

0-201-57795-X

通用VxD和驱动程序DLL信息)
Book Writing Windows Virtual Device Drivers David Thielen and Bryan Woodruff (Addison Wesley) 0-201-62706-X (may be replaced by:) 0-201-48921-X 通用VxD和驱动程序DLL信息
Book Writing Windows VxDs and Device Drivers Karen Hazzah (R&D Publications)

0-13-100181-7

通用VxD和驱动程序DLL信息
Book Writing Windows VxDs and Device Drivers, Second Edition Karen Hazzah (R & D Books)

0-87930-438-3

通用VxD和驱动程序DLL信息,第二版本
Internet Hardware Development for IHVs and OEMs http://www.microsoft.
com/hwdev/
硬件开发站点,包括规范、资源和新闻
Internet Microsoft Device Driver Development Support Resources http://support.microsoft.
com/support/ddk
微软DDK工具、样例、第三方连接
Internet Vireo Software http://www.vireo.com/ VTOOLSD主页
MSDN The Little Device Driver Writer MSDN Library: http://msdn.
microsoft.com/

(Note 1)

介绍写Windows95WindowsNT硬件设备驱动程序,包括I/O模式驱动程序设计和调试策略
MSDN The VxD Writer Resource Book, or VxD Writing as a Martial Art MSDN Library: http://msdn.
microsoft.com/

(Note 1)

一个虚拟设备驱动程序编程和一个全面的知识列表的概揽
MSDN What's New in Windows 95 for VxD Writers? MSDN Library: http://msdn.microsoft.com/ (Note 1) 解释当移植它们的VxDsWindows95VxD编写器做的必要的的改变
MSDN Microsoft Windows 95 Device Driver Kit (Supplied to MSDN Professional subscribers). Check Microsoft Web site http://msdn.microsoft.
com/developer
Windows95Windows98设备驱动程序的开始,对基于WDMWindows98设备驱动程序是没有用的。
MSDN Microsoft Windows 98 Device Driver Kit (Supplied to MSDN Professional subscribers). Check Microsoft Web site http://msdn.microsoft.
com/developer
设备驱动程序的开始。包括支持WDM技术。可以在先面的地址上自由下载:http://www.microsoft.com/ddk.
MSDN Microsoft Windows NT Driver Development Kit (Supplied to MSDN Professional subscribers). Check Microsoft web site http://msdn.microsoft.
com/developer
包含和Windows95/98发展也和Windows2000的发展相关的SCSI小型端口和WDM信息  ,可以在下面的地址免费下载:http://www.microsoft.com/ddk

 

19987月和后续版本的Windows95DDK CD-ROM中你可以很容易的找到可打印的文档,它们在\NEW95DOC路径下。注意这个路径在你安装DDK的时候是不会自动拷贝到你的硬盘当中,你必须采用人工方法来拷贝。

我自己更习惯于将经常引用的信息文档打印出来;你能注释打印的文本和添假快速指南的便签注释。我建议你将下面的“通用VxD开发”打印出来并将它们放到你的参考书架上:

\new95doc 文件夹中的文件名 注释
UTILS.DOC 如何使用WDEB386调试器,对于用SOFTICE开发也是有用的,因为它解释如何用调试二进制码和调试器命令。
VXDS.DOC VxD 文件n.
INTRO.DOC 介绍 Windows 95 DDK.
KERNEL.DOC 虚拟存储管理文件。一个大的文档,  我建议你用两面打印将它打印出来(当然,你的打印机要支持)。

 

使用什么样的DDK?

通常首选的是Windows 98 DDK因为它提供:

  • 很多的样本和很多有用的例子
  • 新的例子支持WDM技术
  • 用在Windows NT 4.0DDK中的 BUILD命令能够很容易建立样本例子
  • 更新文件

如果你用WDM技术开发驱动程序,或者驱动程序需要只在Windows98中具有的属性,那么你需要用Windows98 DDK

可用的样本代码

样本在Windows95Windows98中是可用的,样本文档能够在Windows98 DDK中找到或者在Windows95 DDK的\New95doc\intro.doc 中。

同样, 你能够用SAMPLE作为关键字在Windows 95/98 DDK资源数据库要点中搜索样本信息,包括第三方的可用样本。

DDK的开发准备系统

需要用什么版本的VC++?

根据你所开发的设备驱动程序的类型,你可以按照下表选用合适的C++编译器的版本:

Visual C++版本 描述 典型应用
1.52 开发16位的应用。

最后的版本支持开发16位的应用。

系统属性页操作(不是32DLL是控制面板属性页)16位打印驱动程序DLLs
2.0 或更高的版本 只能用来编译32位应用程序。 2.0版本不被推荐用来编写设备驱动程序。
4.0 被推荐用来用Widows95 DDKWindows 98 DDK来创建设备驱动程序的最低的版本。 常规驱动程序和VxD的开发。
4.1 作为一种设计的失误,不能用它建立VxDs (没有用)
4.2 改正了4.1版本中不适合创建VxDs的问题。注意:为了成功创建在Windows95系统编程这本书中的样本驱动程序,可以参看下面地址中的使用说明:  http://www.oneysoft.com 常规驱动程序和VxD的开发。
5.0 被推荐的用来编译Windows98DDK中样本代码的最高版本的编译器。 常规驱动程序和VxD的开发。
6.0 没有使用。这个版本在有些情况下有命名冲突问题,使得它不适合创建VxDs 没有用来和Windows 95 DDK Windows 98 DDK一起使用。

如果你有连接的问题,找出你所使用的LINK.EXE。可能的原因是你没有用Windows95DDK提供的LINK.EXE。用DOS下的SET命令检查你的环境路径设置,确定使用正确的LINK.EXE

 

安装和使用Windows 95 DDKWindows 98 DDK的要点

概述

不要依靠使用Windows 95 DDK中的 DDKDEBUG.BAT 批处理文件来将调试二进制代码拷贝到它们的目标路径中,除非你重新编辑过这个文件了。因为这个在DDK中提供的批处理不能将所有的调试二进制代码都拷贝到正确的目标文件夹中。更进一步的信息请参看本文的调试部分的内容。

Windows 95 DDK 还没有安装?

如果你的Windows95 DDK版本因为无法找到Win32 SDK而无法安装的话,你可能使用了一个老的版本,老板本将无法识别已经代替了Win32 SDK的新的SDK平台。如果是这样,并且你没有新的Windows95 DDK,采用下面的步骤:

  1. 安装Visual C++工具包。 (至少是2.00) 不要用Visual C++ 4.1.
  2. 如果使用Walter Oney的样本例子 (Windows 95系统编程中), 并且用Visual C++ 4.2编译, 查看Walter Oney's 站点http://www.oneysoft.com 中的附加说明。
  3. 由于你没有老的Win32 SDK, 安装SDK平台。编辑注册表以便Windows 95 DDK 安装程序确信 Win32 SDK 已经安装 (如果用老版本的Windows 95 DDK)。在注册表中 ,用REGEDIT来配置下面的注册树。

    HKEY_USERS\.Default\Software\Microsoft\Win32SDK\Directories

    创建一个新的注册关键字: 名字: Install Dir : C:\MSTOOLS.
  4. 安装Windows 95 DDK。如果不能安装,可能问题出在第三步的注册表编辑上,检查一下。
  5. DDK CD-ROM拷贝 Masm 6.11C c:\ddk\bin (e.g. copy d:\masm611c\ml.* c:\ddk\bin)。不要用masm611目录中的new-vars.bat文件因为它会破坏已经存在的环境设置。
  6. 如果你得到一个关于16位段问题和/COFF选项的错误消息,通常意味着你没有6.11C版本的MASM
  7. 如果你没有用在DDKREADME文件中指出的控制,用下面的命令来配置创建环境:

    pathtoddk
    \ddkenv [16|32] [area]
    pathtovc4bin\vcvars32 x86

 

编译和连接

环境空间不够

在编译DDK 样本的时候,一个常见的问题是运行时超出DOS环境空间。这个问题也回出现在 UTILS.DOC文档中。一个解决办法时在CONFIG.SYS文件中添加下面一行,然后从新启动系统:

Config.sys: shell=c:\command.com /p /e:4096

连接(linking)时的错误

当你编译一个VxD的时候,你很可能回得到下面类型的警告信息:

LINK : warning LNK4078: multiple "LCODE_vxdpn" sections found with different attributes

LINK : warning LNK4039: section "16ICODE_vxdpd" specified with /SECTION option does not exist

这些警告可以被忽略。如果你希望这些警告消失(更重要的警告和消息还是会显示的),你可以将下面的命令行选项加到你的连接描述中:

- ignore:4078 – ignore:4039

如果你得到一个异常的连接错误,看看你是否运行了一个错误的连接程序。确保你的环境中的路径的设置是指向Windows 95 Windows 98 DDK的连接器。

 

调试

Windows 95 的调试

关于WDEB386 调试器更详细的信息,请参看在Windows95DDK CD-ROM中的最新的文档(19987月),该文档在\New95doc\utils.doc中。

下面的程序和文件与Windows95 DDK的调试有关:

文件名 解释
\DDK\DEBUG\WDEB386.EXE 内核模式调试器
\DDK\DEBUG\RUNWDEB.BAT 一个启动调试器的批处理文件。你必须编辑这个文件来指明你的远程终端在什么串行端口上等。
\DDK\DEBUG\RUNWDEB.WRF (由你产生的) 这个文件包含一个符号文件所在位置的表。参考RUNWDEB.BAT。在这个文本文件中的典型记号是:

/s:c:\ddk\diskvsd.sym

/s:c:\ddk\configmg.sym

/s:c:\ddk\ios.sym

/s:c:\ddk\esdi_506.sym

其中c:\ddk\ 是符号文件所在的路径。

(Your favorite terminal program) 远程机器(用一个空调试解调器电缆)连接到你的测试机需要一个终端程序,比如:

? HyperTerminal (超级终端,Windows提供的)

? 无论是 RTERM程序 还是 RTERM98 程序(Windows 98 DDK中,Windows 95 DDK中没有)

 

Windows 98 的调试

一个新的内核模式调试器WDEB98Windows 98 DDK中已经可以使用了。 WDEB98 需要在远程一边使用一个专门的终端程序RTERM98, 它同样在DDK中支持。 WDEB98WDEB386的一个基本地提高版本,所以你可以用WDEB386 文件作为开始。你也可以用WDEB98调试器中的 ? .? 命令来获得WDEB98/RTERM98特性的列表。

下面的程序和文件和Windows98 DDK中的WDEB98调试有关:

文件名 解释
\98DDK\BIN\WDEB98.EXE 内核模式调试器
\98DDK\BIN\RUNWDB98.BAT 一个启动调试器的批处理文件。你必须编辑这个文件来指明你的远程终端在什么串行端口上等。
\98DDK\BIN\RUNWDEB.WRF (由你产生的) 这个文件包含一个符号文件所在位置的表。参考RUNWDB98.BAT。在这个文本文件中的典型记号是:

/s:c:\ddk\diskvsd.sym

/s:c:\ddk\configmg.sym

/s:c:\ddk\ios.sym

/s:c:\ddk\esdi_506.sym

其中c:\ddk\ 是符号文件所在的路径。

\DDK\BIN\RTERM98.EXE 当用WDEB98, 远程机器(用一个空调试解调器电缆)连接到你的测试机需要终端程序RTERM98

WDEB98部分附加的特性:

  • 支持RTERM98-side 符号,能够在空闲的时候装载和改变。
  • 限制原码级调试支持的级别。
  • 调试器现在能够感知Win32(不在为每个应用显示探测符号)
  • 更高的波特率支持(高于115.2Kbps)
  • 改变注册能在通过代码改变的时候改变颜色(Changed registers change color while stepping through code
  • 指令集更新到了奔腾级(PPro/MMX 将来会支持)
  • 多显示驱动能够立即被调试(对多显示系统)
  •  

已知的失误:

1. WDeb98 不能工作在 Windows 3.x

2. 有时候符号能装载两次(一次在RTERM98 一边, 一次在WDEB98 一边)

3. 当你需要看下面的数据流而做页上翻的时候RTERM98 的用户区域会快速的闪烁。

问题/回答:

Q. 我可以在WDeb98中使用旧版本的RTERM吗?

A. 不行。 RTERM98 WDEB98 现在是集成的产品你不能从RTERM98中将 WDEB98分离出来(尽管RTERM98仍然需要老板本的WDEB386)。

 

Q. 我如何安装WDEB98?

A. 人工安装WDEB98, 只要拷贝runwdeb.bat 行并将wdeb386.exe改成WDEB98.exe。如果要作为VxD安装,可以按上面的办法拷贝和修改,或者在system.ini 文件的[386enh]部分加上device=WDEB98.exe

Q. 我能够在运行原始的RTERM8Mb 386/20上运行RTERM98吗?

A. 行,虽然会慢点。大部分的调试代码被从WDEN98转变到了RTERM98。这表示了慢速的RTERM98机器意味着调试软件也慢。建议所有的RTERM98机器至少是486/66带有8MB内存。如果你希望将符号加载到RTERM98机器中,建议有16MB的内存。.

 

Q. 如何配置RTERM98 才能自动的在RTERM98那边自动加载符号?

A. 如下:

  1. Settings->Options->Symbol Search Paths.
  2. 输入你希望RTERM98在试图加载符号时搜索的路径。
  3. RTERM98 将在WDEB98启动的时候自动增加创建的号码(点击Environment tab 查看)。

如果想测试一下,中断一下运行并键入 .VMM L. 你将看到每个驱动程序的符号被自动装载进来。当你利用了列表后,键入LM就能列出所有的符号。

Q. 现在是如何分析符号的?

A. WDEB98 将先试着用老的方法分析装载到WDEB98一边的符号,然后需要RTERM98来分析符号。

注意: 由于WDEB98 用和WDEB386同样的方法来分析局部(WDEB98-side)符号,而且由于局部符号总是作为首先的目标,你必须避免装载Win32-应用或显示符号在WDEB98一边。为什么?如果你在局部装载Explorer.sym,所有应用将显示的和explorer.sym一样,就象Wdeb386。相似的,如果你装载局部显示符号,多显示卡将使用同一个显示符号,就象Wdeb386

Q. 我需要在一个还没有装载的符号中设置一个断点,我该怎么做?

A. 键入WA <component> 来装载符号。注意RTERM98只是确认.SYM的后缀并试图加载这些文件,从而加载了内核符号,你实际上希望用WA KRNL386替代WA KERNEL。一旦符号被加载,你可以象通常那样放置一个断点。

Q. 我如何在工作中得到粗略的源码级的调试?

A. 进入代码搜寻路径并键入你的部件源代码所在的路径。中断之后你就会看到你的源代码显示在弹出式窗口的右边。如果你没有看到,键入LN并确定你的部件的符号文件有行编号信息。

为了用源码级调试,你需要建立你自己的调试二进制代码以便它们包含行编号信息。比如,为了得到WDM驱动程序中的行编号,在\98DDK\inc\makefile.def文件中做如下的修改:

 

!IF "$(NTDEBUGTYPE)" == "windbg"

LINKER_DBG_TYPE = -debugtype:cv

!ELSEIF "$(NTDEBUGTYPE)" == "ntsd" || "$(NTDEBUGTYPE)" == "coff" || "$(NTDEBUGTYPE)" == ""

LINKER_DBG_TYPE = -debugtype:coff

!ELSEIF "$(NTDEBUGTYPE)" == "both"

LINKER_DBG_TYPE = -debugtype:map,coff (line 1138) ***********

 

!IF "$(NTDEBUG)" == "ntsd" || "$(NTDEBUG)" == "ntsdnodbg"

LINKER_DBG_SECTION=-debug:FULL (line 1276) ************

!ELSE

然后,确信在RTERM98Settings->Options->Code Search Paths指向源码的位置,以便在调试二进制代码的步骤中装载源码。

Q. 我如何关闭源码窗口?

A. 回到代码搜索路径(code search paths)属性页,去掉代码搜索路径,并在调试软件的提示中键入’R’。这个窗口就会隐藏。

Q. 我的机器在运行的时候经常会丢失一些特性或在屏幕上出现很多垃圾,我将怎么办?

A. 是的,如果你通过runwdeb.bat装载WDEB98,之后加/P(如果你用开关盒)或者/PX(如果你没有用开关盒)。所有的文本将发送进包中,并且那些包将被回送只到它们无损坏地通过串行端口电缆。注意你的有效波特率将会损失75%。然而你应该能够用提高波特率来补偿这个问题。

Q. 你们有关于用WDEB98做调试的更好的文章吗?

A. 注意WDEB98就象WDEB386那样工作,只是做了一些增强工作。

 

SoftIce 的调试

第三个选择是采用SoftIce 内核模式调试软件。在下面的站点上你能看到更多的信息:

http://www.vireo.com http://www.numega.com.

注意SoftIce也能够充分利用微软二进制调试器提供的特性(显示诊断声明和发布VxD点命令)。同样,你可以安装DEBUGCMD.VXD使SoftIce 能够用.P调试器点命令来探测线程信息。

 

调试二进制代码

(关于这个主题的更多的信息参看在19987月的Windows 95 DDK盘上的\NEW95DOC文件夹下的UTILS.DOC文档)

一旦你得到了调试器的基本工作,你可以开始增加调试二进制代码文件和符号文件。这个部分讨论这些文件是什么以及怎么用和为什么用它们。

调试二进制代码是Windows 95 Windows 98在相应的makefile文件中包含有DEBUG=1的声明情况下编译的典型的内核VxD

你没必要为运行和使用调试器而使用调试二进制代码。然而调试二进制代码在对你的VxD进行故障诊断中非常有用。

  • 调试二进制代码包含附加的代码来对调试器终端发布消息。这些消息包括有价值的情况信息、报警信息和错误信息。
  • 调试二进制代码专门包括了不在发售的驱动程序中的特别的调试器点命令操作代码(参见在WDEB386文件中的系统点命令(System Dot Commands)。点命令是用来显示那些只有支持点命令的驱动程序才有的内部数据结构的内容的。
  • 调试二进制代码执行附加的数据和指针的验证(比如用ASSERT功能)。比如,如果一个指针被发现是空的那么它不会在这一点上引起调试器自动地停止,因为调试二进制代码可以包含INT1INT3中断(参看在WDEB386文件 UTILS.DOC中的调试器中的中断)。
  • 如果符号文件是调试二进制代码VxD提供的,用它们,可以很方便地在代码中进行导航。

如果你的设备有运行在Windows 98下的能力,首选的调试平台是Windows 98,因为Windows 98 DDK 包括一个包含Windows 98调试二进制代码和符号的扩展集的文件夹。Windows 95调试二进制代码的可用性很小。

一个在使用调试器时经常发生的问题是调试二进制代码文件的不正确安装,由于使用了错误的操作系统版本,或者调试二进制代码拷贝到了一个错误的目录。

如果可能,执行操作系统和想要的应用软件的干净安装。然后安装WDEB98WDEB386(这个时候没有安装调试文件)。为了安装调试器,将系统在实模式下启动,添加命令来将调试器装入到\AUTOEXEC.BAT中,在DOS”pause” 命令之后,这样如果你用键盘的<ctrl+c>,就能放弃调试。

仅安装调试二进制和符号文件和你的项目有直接关系。调试二进制之间的唯一相关性是VWIN32.VXD, KERNEL32.DLL, KRNL386.EXE相联系(你必须将他们全部装上)。

 

Windows 95 系统调试二进制代码和符号文件

 

在哪找到它们

你必须决定在你的目标PC上究竟使用什么版本的Windows 95 我的电脑上击右键,然后点击属性,查看系统属性就能看到系统的版本信息了。在版本域后面附加的字母确定了已经安装的版本。

希望的目标版本: 用在下面目录中的二进制代码:
Windows 95 Golden (version A): In the Windows 95 DDK CD-ROM
Windows 95 Version OSR2 (version B) http://support.microsoft.com/support/ddk
Windows 95 Version OSR2.1 (version B) USB Supplement (build 1214).

如果你的系统在%WINDIR%\SYSTEM\VMM32目录下包含NTKERN.VXD 文件,说明已经安装了USB附件。

http://support.microsoft.com/support/ddk

 

调试二进制和符号文件相关表

驱动程序文件名 W9

5

OSR2 OSR2.1 需要在%WINDIR%Windows 目录)下的目标子目录 解释
bios.vxd X X   \system\vmm32 BIOS 计数器.
configmg.vxd X* X   \system\vmm32 配置管理器即插即用核心。支持调试器点命令 .CONFIGMG
ios.vxd X* X   \system\vmm32 输入输出子系统管理器。支持调试器点命令.I ?用于帮助。
vdd.vxd X* X   \system\vmm32 虚拟显示驱动器。
vdmad.vxd X* X   \system\vmm32 虚拟DMA驱动器。虚拟直接驱动器存取控制器芯片。
vflatd.vxd X* X   \system\vmm32 虚拟平面帧缓冲设备(显示)。
vkd.vxd X* X   \system\vmm32 虚拟键盘设备。
vmcpd.vxd   X   \system\vmm32 虚拟数学协处理器设备。
vmm.vxd X* X X \system\vmm32 虚拟存储管理器。包含所有的被VxDs使用的”MMCall” 内核服务。 
vpicd.vxd X* X X \system\vmm32 虚拟可编程界面控制器驱动程序。虚拟PIC芯片。
vxdldr.vxd X* X X \system\vmm32 VxD 加载服务,包括可移植执行格式文件。
ntkern.vxd     X \system\vmm32 WDM 驱动程序支持,包括USB。调试器可用的点命令.NTKERN.
cdtsd.vxd X X   \system\iosubsys 安排CD-ROM存储设备的驱动器字母。
cdvsd.vxd X X   \system\iosubsys CD-ROM “SCSI-izer”。补偿有SCSIIOP需求的供给端口驱动程序的需要的块。
disktsd.vxd X X   \system\iosubsys 为磁盘存储设备安排驱动器字母。
diskvsd.vxd X X   \system\iosubsys 磁盘 “SCSI-izer”。补偿有SCSIIOP需求的供给端口驱动程序的需要的块。
scsiport.pdr X*     \system\iosubsys 对一个或更多的SCSI小型端口设备驱动程序提供接口,实现Windows NT SCSI 小型端口标准。
eisa.vxd X X   \system EISA 总线计数器。
isapnp.vxd X X   \system ISA 总线计数器。
lptenum.vxd X X   \system 并行端口计数器。
ndis.vxd X X   \system 网络驱动器接口规范驱动程序。
pccard.vxd X X   \system PC (PCMCIA) 即插即用驱动程序。
pci.vxd X X   \system PCI 总线计数器。
debugcmd.tmp X     \system 它是为线程观测调试器点命令(参看.P”)而安装的。为了使用它,将它的名字改成 DEBUGCMD.VXD, 将它放在文件夹\%WINDIR%\SYSTEM , 通过在SYSTEM.INI文件的[386Enh]片段中放置 DEVICE=DEBUGCMD.VXD 来装载它。
usbd.sys X \system 通用串行总线设备种类驱动程序部件(WDM)
openhci.sys     X \system 打开主控制器接口驱动程序部分 (WDM)
uhcd.sys     X \system 通用主控制器驱动程序(WDM)
usbhub.sys     X \system 通用串行总线插座驱动程序 (WDM)

* 一个相应的符号文件(.SYM)也被提供给这个文件。

 

Windows 98系统调试二进制代码和符号文件

Windows 98 DDK Windows 98系统成分和驱动程序内核的很多调式版本。这些二进制代码是用作于在Windows 98 DDK中测试和调试驱动程序开发,它的位置在\DBG_SYM\RETAIL

下面是一个目前的在Windows 98 DDK中的二进制代码列表以及每个二进制代码需要被拷贝到的以便Windows 98可以从那装载这些代码的目录列表。调试符号文件也被包括,它们同样的主文件名,但是后缀是.SYM。请查阅关于如何用每个调试二进制代码的特殊调试属性信息的WDEB98系统调试器的文档。

注意:有依赖于WIN32.VXD, KERNEL32.DLL, KRNL386.EXE的版本。 你必须运行这些二进制代码的所有零售版本或者运行所有调试版本。混合使用这些二进制代码的零售版本和调试版本会导致Windows 98在启动的时候挂起或出现错误。

另外,你只需要安装那些和你的工作有关的技术的调试二进制文档就可以了。

如果当你正在用一个调试二进制代码进行调试的时候出现代码神秘消失的问题,你需要删除调试二进制代码而使用原始的(发布版本)代码。为了帮助调试零售版代码,你应使用它们在\DBG_SYM\RETAIL\路径下的相应的符号文件(*.SYM)。

你可以用微软Word的表格->排序选项,根据一个或多个列的内容为下面的表排序。比如,按需求的目标子文件夹排序将通过驱动程序在磁盘上的位置进行排序。

Windows 98 金版(第一销售版本)的调试二进制代码和和符号文件可以在Windows 98 DDK CD-ROM中找到,也可以在微软Web站点http://www.microsoft.com/ddk中找到。

驱动程序文件名 类别 需求的在%WINDIR%中的子文件夹 解释
CMBATT.SYS APM(高级电源管理) \system  
IRCOMM.VXD Comm(通信) \system  
IRENUM.VXD Comm \system  
IRLAMP.VXD Comm \system  
IRLAPFRM.VXD Comm \system  
LPTENUM.VXD Comm \system 并行端口计数器(enumerator
SERENUM.VXD Comm \system 串行端口计数器设备.
TAPI.DLL Comm \system 电话应用程序接口。
UNIMODEM.VXD Comm \system  
VCD.VXD Comm \system\vmm32  
VCOMM.VXD Comm \system\vmm32  
VPD.VXD Comm \system\vmm32  
VDD.VXD Display(显示) \system\vmm32 虚拟现实驱动程序。
VFLATD.VXD Display \system\vmm32 虚拟平面框架缓冲设备(显示)
DIBENG.DLL Display, Printing \system  
HID.DLL HID \system  
HIDCLASS.SYS HID \system32\drivers