文書番号: 314106 - 対象製品
Microsoft Windows 2000 については、次の資料を参照してください。165214
すべて展開する | すべて折りたたむ

目次

概要

この資料では、Windows で MS-DOS ベースのプログラムをトラブルシューティングする方法について説明します。

詳細

Ntvdm サブシステムをテストする

MS-DOS ベースのプログラムに問題がある場合に最初にテストするのは、NTVDM (Windows Virtual DOS Machine) サブシステムです。NTVDM サブシステムが正常に動作しているかどうかは、Command.com ユーティリティを使用してテストできます。Command.com を起動するには、次の手順を実行します。
  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  2. [名前] ボックスに command.com と入力し、[OK] をクリックします。
これで、コマンド プロンプト ウィンドウが起動します。適切に起動しない場合は、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 (CSNW がインストールされている場合のみ)
       lh %SystemRoot%\System32\Vwipxspx (CSNW がインストールされている場合のみ)
    						
    別の方法として、Windows CD-ROM から Autoexec.nt_ および Config.nt_ を %SystemRoot%\System32 フォルダに展開することもできます。
  • Ctrl + Shift + Esc キーを押してタスク マネージャを起動します。実行中のすべてのプログラムを閉じ、他に実行中の NTVDM プロセスがないことを確認します。
  • 起動時にプログラムが実行されないようにします。プログラムは、スタートアップ グループ、レジストリ内の Run および RunOnce 行の 2 つの場所から起動時に実行できます。この 2 つの場所は、次のようにして確認することができます。
    1. スタートアップ グループは、ローカル ハード ディスク上のフォルダです。スタートアップ グループは次の場所にあります。
      • %SystemRoot%\Profiles\user_name\Start menu\Programs
      • %SystemRoot%\Profiles\Default user\Start menu\Programs
    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
      このキーには、Windows で使用される Config.sys および Autoexec.bat ファイルの環境変数が格納されます。
    • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ VirtualDeviceDrivers
      このキーには、NTVDM セッションで使用されるデバイス ドライバが格納されます。これらのエントリは、デバイス ドライバのインストール時に Windows セットアップによって作成されます。

プログラム固有の問題を調べる

Windows XP では次の関数が機能しません。
  • タスク切り替え用 API (アプリケーション プログラミング インターフェイス) 関数を除き、MS-DOS 関数はすべてサポートされています。
  • ブロック モードのデバイス ドライバはサポートされていません。ブロック デバイスはサポートされていないため、ブロック デバイスおよび SETDPB 関数を処理する MS-DOS I/O コントロール (IOCTL) API はサポートされていません。
  • 割り込み (IRQ) 10 の関数 1A は 0 を返します。他の関数はすべて ROM (Read-Only Memory) に渡されます。
  • 禁止されているディスク アクセスを処理する割り込み 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 (Reduced Instruction Set Computer) コンピュータでは Microsoft Visual Basic などのエンハンス モードのプログラムを実行できます。
つまり、Windows は、ハードウェアへの無制限のアクセスを必要とする 16 ビット プログラムをサポートしていません。このようなアクセスを必要とするプログラムは、Windows NT、Windows 2000、または Windows XP では動作しません。

次に、Autoexec.nt および Config.nt ファイルの設定が適切であるかどうかを調べます。必ず上記のデフォルトの設定を試してください。特別な設定またはドライバを Config.sys または Autoexec.bat ファイルで実行する必要のあるプログラムもあります。そのような場合のために、プログラムの起動時にこれらのファイルを初期化する次の 2 つのオプションが用意されています。
  • %SystemRoot%\System32 フォルダにある Config.nt および Autoexec.nt ファイルにそれらの行を入力します。
  • このプログラムを起動するときに実行される新しい Config および Autoexec ファイルを作成します。これを行うには、次の手順を実行します。
    1. ファイルを作成し、拡張子 .nt を付けて %SystemRoot%\System32 以外のフォルダに保存します (これらのファイルは通常、プログラムと同じフォルダ内に保存します)。
    2. デスクトップを右クリックし、[新規作成] をポイントして、[ショートカット] をクリックします。
    3. [項目の場所を入力してください] ボックスに、実行するファイルの完全なパスを入力して、[次へ] をクリックします。
    4. [このショートカットの名前を入力してください] ボックスに、ショートカットの名前を入力し、[完了] をクリックします。これで、デスクトップ上に新しいショートカットが作成されます。
    5. 新しいショートカットを右クリックし、[プロパティ] をクリックします。
    6. [プログラム] タブの [Windows] をクリックします。これにより、Autoexec および Config ファイルへのパスを入力するためのダイアログ ボックスが開きます。
    7. 作成したファイルへの完全なパスを入力し、両方のダイアログ ボックスの [OK] をクリックします。
    このアイコンをクリックすると、プログラムに対して指定した Autoexec および Config ファイルが実行されます。これらの設定には、MS-DOS ベースのプログラムについて記載されているのと同じ制限が適用されます。
プログラムのプロパティには他にも設定があります。プログラムが正常に動作しない場合は、すべてのタブを調べて、プログラム設定が製造元の指定どおりに設定されていることを確認します。それでもプログラムが動作しない場合は、そのプログラムが Windows でサポートされているかどうかをプログラムのベンダに問い合わせてください。

関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
171940 [NT]MS-DOS で I/O 処理が FD にアクセスする原因になる
156687 Config.nt または Autoexec.nt のエントリによって NTVDM エラーが発生する
102418 NTVDM エラー : ドライブにディスクがありません
142026 [NT]Err:WOWVDM 隠しコンソールでシステム エラーが発生しました
この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。明示または黙示にかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 314106 (最終更新日 2005-06-28) を基に作成したものです。

プロパティ

文書番号: 314106 - 最終更新日: 2005年9月26日 - リビジョン: 2.1
この資料は以下の製品について記述したものです。
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
キーワード:?
kbregistry kbenv kbinfo kbtshoot KB314106
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

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