在 Windows 中的故障排除基于 ms-dos 的程序

文章翻译 文章翻译
文章编号: 165214 - 查看本文应用于的产品
为这篇文章的一个 Microsoft Windows XP 版本,请参阅 314106
展开全部 | 关闭全部

本文内容

概要

本文介绍如何对基于 ms-dos 的程序在 Windows 中的问题进行疑难解答。

更多信息

测试 Ntvdm 子系统

若要测试时有问题与基于 ms-dos 的程序在第一件事就是 Windows 虚拟 Dos 机 (NTVDM) 子系统。您可以使用 Command.com 测试是否 NTVDM 子系统运行正常。 您可以通过执行以下步骤启动 Command.com:
  1. 单击 开始 按钮,然后单击 运行
  2. 打开 框中键入 command.com,然后单击 确定
这应启动一个命令提示窗口。如果这不能正常工作,NTVDM 子系统有问题,并且您应检查以下各项:
  • 检查 %SystemRoot%\System32 文件夹中的非标准设置 Config.nt 和 Autoexec.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 (only if CSNW is installed)
          lh %SystemRoot%\system32\vwipxspx (only if CSNW is installed)
    						

    注意: 若要完成此操作的另一种方式是从 Windows 光盘光盘 Autoexec.nt_ 和 Config.nt_ 展开到 %SystemRoot%\SYSTEM32 文件夹。
  • 关闭所有其他正在运行的程序。这可以通过运行任务管理器,关闭所有正在运行的程序并确保没有运行其他 NTVDM 进程来完成。若要启动任务管理器请按 CTRL + SHIFT + ESC。
  • 阻止所有程序启动时运行。在启动时,程序可以运行从三个位置: 启动组、 运行和 Runonce 行在注册表中,并在"运行 ="和"加载 ="Win.ini 文件中的行。可以检查这些位置,如下所示:
    • 启动组是在本地硬盘上的文件夹,在以下位置的:
      • %SystemRoot%\Profiles\ user_name \Start menu\Programs
      • %SystemRoot%\Profiles\Default user\Start menu\Programs


    • 下面的注册表项下在注册表中找不到运行和 Runonce 行:
      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\
    • 您可以编辑使用记事本 Win.ini 文件。它是 %systemroot%文件夹中。
  • 验证 %SystemRoot%\System32 文件夹中的 NTVDM 系统文件。检查下列文件,并确保它们是通过检查大小和日期的正确版本:
          Ntio.sys
          Ntdos.sys
          Ntvdm.exe
          Ntvdm.dll (Windows NT 3.1 only)
          Redir.exe
    						
  • NTVDM 子系统与相关联的注册表项是:
    • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
      此注册表项存储在 Windows 中用于冲突和 Autoexec.bat 文件中的环境变量。
    • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ VirtualDeviceDrivers
      此注册表项存储在一个 NTVDM 会话中使用了设备驱动程序。 安装设备驱动程序时,这些项被创建 Windows 安装程序。

特定于程序的问题

在 Windows 中,以下功能不起作用:
  • 支持除任务切换 api (程序编程接口函数) 外的所有 MS-DOS 函数。
  • 不支持的块模式设备驱动程序。(阻止设备不是支持,以便处理块设备的 MS-DOS IOCTL api 和 SETDPB 函数不受支持的)。
  • 中断 10 函数 1A 返回 0 ; 其他所有功能都传递给只读存储器 (ROM)。
  • 不支持中断 13 呼叫处理禁止使用的磁盘访问的。
  • 中断 18 (ROM BASIC) 生成一条消息,指出 ROM BASIC 不受支持。
  • 中断 19 不会重新启动在的计算机,但将干净地终止当前的虚拟 DOS 机 (VDM)。
  • 中断 2F DOSKEY 程序调用超时处理 (AX = 4800) 不受支持。
  • 不支持 Microsoft CD-ROM 扩展 (MSCDEX) 函数 2,3,4,5,8 E 和 F。
  • 16 位 Windows 子系统上一个 x 86 计算机支持, 增强模式程序 ; 它不,但是,支持 16 位 vxd (虚拟设备驱动程序)。非 x86 的计算机上子系统模拟可让计算机在 RISC 计算机上运行增强模式程序如 Microsoft Visual Basic 中,该英特尔 40486 指令集。
这意味着 Windows 不支持需要无限制地的访问硬件的 16 位程序。如果您的程序需要该,它将无法工作在 Windows NT 或 Windows 2000 中。

接下来,您应该检查 Autoexec.nt 和 Config.nt 文件设置正确。总是尝试上面列出的默认设置。有些程序需要特殊设置或驱动程序冲突或 Autoexec.bat 文件中运行。这是否大小写有用于启动程序时初始化这些文件的两个选项:
  • 在 $ Config.nt 和 Autoexec.nt %SystemRoot%\System32 文件夹中文件中输入这些行。
  • 创建新的配置和 $ 自动执行文件,要启动该程序时运行。这样做,请按照下列步骤操作:
    1. 创建文件并将它们保存与该扩展名.nt 中之外的 %SystemRoot%\System32 (这些文件通常都保存在与程序相同的文件夹中。
    2. 用鼠标右键单击桌面,指向 新建,然后再单击 快捷方式
    3. 命令行 框中键入您希望运行,该文件的完整路径,然后单击 下一步
    4. 在"选择该快捷方式的名称"框键入快捷方式的名称,然后单击 完成。这将在桌面上创建一个新的快捷方式。
    5. 用鼠标右键单击新的快捷方式,然后单击 属性
    6. 程序 选项卡上单击 窗口。这将打开一个对话框,用于自动执行和配置文件路径。
    7. 键入要创建,将文件的完整路径,然后单击 确定 两个对话框中。
    每次启动时该图标,则它将运行所指定的程序的自动执行和配置文件。列出为基于 ms-dos 的程序,这些设置将是相同的限制。
有一个程序的属性中的其他设置。如果不能正常工作程序您可能希望检查所有选项卡,并确保程序被设置为厂商的规范。如果仍无法正常工作程序,程序的供应商联系以查看该程序是否支持在 Windows。

有关更多的信息,请参阅下面 Microsoft 知识库中相应的文章:
文章 ID: 171940
TITLE: MS-DOS 应用程序 I/O 操作原因软盘驱动器访问

文章 ID: 102418
TITLE: NTVDM 错误: 有没有磁盘中的为驱动器,在

文章 ID: 156687
TITLE: CONFIG.NT 或 AUTOEXEC.NT 中的项可能导致 NTVDM 错误

文章 ID: 142026
TITLE: 错误:"隐藏的控制台 WOW VDM 的"运行 16 位或 DOS 应用程序
有关在基于 ms-dos 的程序中打印的其他信息,请参阅 Microsoft 知识库中下面的文章:
文章 ID: 163551
TITLE: 故障排除 Windows 中的打印问题

属性

文章编号: 165214 - 最后修改: 2007年2月22日 - 修订: 3.2
这篇文章中的信息适用于:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 4.0 开发员版
关键字:?
kbmt KB165214 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 165214
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