文章编号: 314106 - 查看本文应用于的产品
有关本文的 Microsoft Windows 2000 版本,请参阅 165214
展开全部 | 关闭全部

本文内容

概要

本文描述如何在 Windows 中对基于 MS-DOS 的程序进行故障排除。

更多信息

测试 Ntvdm 子系统

在基于 MS-DOS 的程序出现问题时,首先要测试的是 Windows 虚拟 DOS 机 (NTVDM) 子系统。可以使用 Command.com 实用工具测试 NTVDM 子系统是否正常运行。要启动 Command.com,请按照下列步骤操作:
  1. 单击开始按钮,然后单击运行
  2. 打开框中,键入 command.com,然后单击确定
随即启动一个命令提示符窗口。如果这没有正常运行,则说明 NTVDM 子系统存在问题,应当检查下列各项:
  • 检查 SystemRoot%\System32 文件夹中的 Config.ntAutoexec.nt 文件,查看是否有非标准设置。

    使用 REM 语句注释掉除下列默认条目以外的所有条目:
    Config.nt
    ---------
    dos=high, umb
    device=%SystemRoot%\System32\Himem.sys
    files=20
    
    Autoexec.nt
    -----------
    
    lh %SystemRoot%\System32\Mscdexnt.exe
    lh %SystemRoot%\System32\Redir
    lh %SystemRoot%\System32\Dosx
    lh %SystemRoot%\System32\Nw16(仅当安装了 CSNW 时)
    lh %SystemRoot%\System32\Vwipxspx(仅当安装了 CSNW 时)
    						
    另一种实现方法是将 Autoexec.nt_ 和 Config.nt_ 从 Windows 光盘展开到 %SystemRoot%\System32 文件夹中。
  • 按 Ctrl+Shift+Esc 启动任务管理器,关闭所有正在运行的程序,并确保没有其他 NTVDM 进程正在运行。
  • 禁止任何程序在启动时运行。启动时,程序可以从以下两个位置运行:“启动”组,以及注册表中的 Run 和 RunOnce 行。可以按照下列步骤检查这些位置:
    1. “启动”组是本地硬盘上的文件夹。它们的位置是:
      • %SystemRoot%\Profiles\user_name\“开始”菜单\程序
      • %SystemRoot%\Profiles\Default user\“开始”菜单\程序
    2. Run 和 RunOnce 行位于注册表中的以下注册表项下:
      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\
  • 检查 %SystemRoot%\System32 文件夹中的 NTVDM 系统文件。检查下列文件,并通过检查大小和日期确保它们的版本是正确的:
    Ntio.sys
    Ntdos.sys
    Ntvdm.exe
    Ntvdm.dll(仅限于 Windows NT 3.1)
    Redir.exe
    					
  • 与 NTVDM 子系统相关联的注册表项有:
    • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
      此项存储 Config.sys 和 Autoexec.bat 文件中的环境变量,以供在 Windows 中使用。
    • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ VirtualDeviceDrivers
      此项存储 NTVDM 会话中使用的设备驱动程序。Windows 安装程序会在安装设备驱动程序时创建这些项。

检查程序特定的问题

下列功能在 Windows XP 中无法使用:
  • 支持除任务切换 API(应用程序编程接口)函数以外的所有 MS-DOS 函数。
  • 不支持块模式设备驱动程序。不支持块设备,因此不支持处理块设备和 SETDPB 函数的 MS-DOS I/O 控制 (IOCTL) API。
  • 中断 10 函数 1A 返回 0;所有其他函数都被传递到只读内存 (ROM)。
  • 不支持处理禁用磁盘访问的中断 13 调用。
  • 中断 18 (ROM BASIC) 生成一条说明不支持 ROM BASIC 的消息。
  • 中断 19 不重新启动计算机,但是会干净地关闭当前的虚拟 DOS 机 (VDM)。
  • 不支持处理 DOSKEY 程序呼出 (AX = 4800) 的中断 2F。
  • 不支持 Microsoft CD-ROM 扩展 (MSCDEX) 函数 2、3、4、5、8、E 和 F。
  • x86 计算机上的 16 位 Windows 子系统支持增强模式的程序;但是,它不支持 16 位的虚拟设备驱动程序 (VxD)。非 x86 的计算机上的子系统模拟了 Intel 40486 指令集,这使得计算机能够在精简指令集计算机 (RISC) 上运行增强模式的程序,如 Microsoft Visual Basic。
这意味着 Windows 不支持需要无限制地访问硬件的 16 位程序。如果您的程序要求这一点,则该程序将无法在 Windows NT、Windows 2000 或 Windows XP 中正常运行。

下一步,应当检查 Autoexec.nt 和 Config.nt 文件设置是否正确。请始终尝试使用上文中列出的默认设置。某些程序要求有特殊的设置或驱动程序才能在 Config.sys 或 Autoexec.bat 文件中运行。这种情况下,有两种用于在启动程序时初始化这些文件的方法:
  • 在 %SystemRoot%\System32 文件夹的 Config.nt 和 Autoexec.nt 文件中输入这些行。
  • 创建在启动该程序时运行的新的 Config 和 Autoexec 文件。为此,请按照下列步骤操作:
    1. 创建这些文件,并在除 %SystemRoot%\System32 以外的文件夹中使用 .nt 扩展名保存它们(通常将这些文件保存在与该程序相同的文件夹中)。
    2. 右键单击桌面,指向新建,然后单击快捷方式
    3. 在“请键入项目的位置”框中,键入您要运行的文件的完整路径,然后单击下一步
    4. 在“键入该快捷方式的名称”框中,键入快捷方式的名称,然后单击完成。这会在桌面上创建一个新的快捷方式。
    5. 右键单击该新快捷方式,然后单击属性
    6. 程序选项卡上,单击 Windows 打开对话框,以便输入 Autoexec 和 Config 文件的路径。
    7. 键入所创建的文件的完整路径,然后在这两个对话框中单击确定
    单击此图标以运行为该程序指定的 Autoexec 和 Config 文件。这些设置要遵循与为基于 MS-DOS 的程序所列出的限制相同的限制。
程序的属性中还有其他设置。如果您的程序无法正常运行,请检查所有选项卡并确保程序设置符合制造商的规范。如果该程序仍无法正常运行,请与该程序的供应商联系,以确保 Windows 支持该程序。

有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
171940 MS-DOS 应用程序 I/O 操作导致软盘驱动器访问
156687 CONFIG.NT 或 AUTOEXEC.NT 中的项可能导致 NTVDM 错误
102418 NTVDM 错误:驱动器中没有磁盘
142026 Err:运行 16 位或 DOS 应用程序时出现“Hidden console of WOW VDM”(WOW VDM 控制台隐藏)
本文中提到的第三方产品由 Microsoft 以外的其他公司提供。对于这些产品的性能或可靠性,Microsoft 不作任何暗示保证或其他形式的保证。

属性

文章编号: 314106 - 最后修改: 2005年10月24日 - 修订: 2.1
这篇文章中的信息适用于:
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional Edition
关键字:?
kbinfo kbtshoot kbregistry kbenv KB314106
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com