本ページは公開が終了したページの複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

EMM386 のトラブルシューティングと技術情報

文書番号: 78557

最終更新日: 2003/07/21


この資料は以下の製品について記述したものです。


使用中のハードウェアに関する問題がこの資料で説明されていない場合、下記のマイクロソフト Web サイトで、その他のハードウェアについての資料を参照してください。

概要

この資料では次の項目について説明します。

注 : この情報は、MS-DOS、Microsoft Windows、および Microsoft Windows for Workgroups に含まれているバージョンの EMM386.EXE に適用されます。

詳細

EMM386.EXE によりコンピュータがロックされた場合

EMM386.EXE によりコンピュータがロックされた場合は、以下のトラブルシューティングの手順に従います。

  1. CONFIG.SYS ファイル内の DEVICE=EMM386.EXE に HIGHSCAN パラメータが含まれている場合、このコマンドから HIGHSCAN を削除して CONFIG.SYS ファイルを保存し、コンピュータを再起動します (一部のコンピュータでは、HIGHSCAN を使用できません)。
  2. EXCLUDE オプションを使用して EMM386.EXE を起動します。

    EMM386.EXE が、システムによって使用されている領域を間違って "ホール" (UMB または EMS ページ フレームとして使用可能な領域) として認識している可能性があります。その結果、EMM386.EXE は、コンピュータのハードウェア アダプタにより使用されているメモリの一部を上書きします。

    A000-EFFF の範囲のアドレスを除外することにより、EMM386.EXE は UMB または EMS ページ フレーム用に除外された領域を使用しなくなります。除外する正確な領域を特定するには、実験が必要です。大きい範囲の領域を除外することから始め、次第に領域のサイズを小さくしていきます。たとえば、次のとおりです。
          DEVICE=EMM386.EXE NOEMS X=A000-EFFF
    
          DEVICE=EMM386.EXE NOEMS X=C000-DFFF
    
          DEVICE=EMM386.EXE NOEMS X=C800-CFFF
    
    
    EMM386.EXE のデバイス行には、除外範囲を複数指定できます。たとえば、次のとおりです。
          DEVICE=EMM386.EXE NOEMS X=C000-C7FF X=E000-EFFF
    
    アダプタ カードが使用する上位メモリ アドレスに関する情報については、ハードウェア デバイスに添付されたドキュメントを参照してください。上位メモリ アドレスを使用するデバイスには、ネットワーク カード、SCSI アダプタ、ビデオ カード、およびスキャナなどがあります。
  3. コンピュータに SCSI ディスク コントローラがあり、SCSI アダプタのデバイス ドライバが必要な場合、SCSI ドライバの DEVICE= 行が DEVICE=EMM386.EXE 行より前に置きます。SCSI デバイス ドライバには、ASPI4DOS.SYS および USPI14.SYS などがあります。
  4. コンピュータがハングする問題が発生した場合は、SMARTDrive ダブル バッファ ドライバを読み込んでみます。

    注 : CONFIG.SYS ファイル内で、SMARTDrive ダブル バッファ ドライバの行は、DEVICE=EMM386.EXE 行より前に置く必要があります。

    MS-DOS 6.0 以降、Windows 3.1 以降、または Windows for Workgroups の場合

    MS-DOS 6.0 以降、Microsoft Windows 3.1 以降、または Microsoft Windows for Workgroups を使用している場合、次のようにして SMARTDrive ダブル バッファ ドライバが CONFIG.SYS ファイルから読み込まれます。
          device=c:\windows\smartdrv.exe /double_buffer
    
    
    AUTOEXEC.BAT ファイルで、SMARTDRV.EXE の行の終わりに /L を追加します。たとえば、次のとおりです。
          c:\windows\smartdrv.exe /L
    
    
    問題が解決しない場合、ダブル バッファ デバイスの行の終わりに次のように + 記号を追加します。
          device=c:\windows\smartdrv.exe /double_buffer+
    
    

    MS-DOS 5.x の場合

    MS-DOS 5.x に含まれている SMARTDRV.SYS ドライバを使用する場合、SMARTDrive ダブル バッファドライバは CONFIG.SYS から次のように読み込まれます。
          device=c:\dos\smartdrv.sys /b+
    
  5. 別の HIMEM.SYS A20 ハンドラで実験します。これは、HIMEM.SYS デバイス行で /MACHINEスイッチを使用することにより行います。

    HIMEM.SYS /MACHINE: スイッチ、および A20ハンドラの問題のトラブルシューティングに関する情報は、次の方法で入手してください。

    • MS-DOS、Windows、または Windows for Workgroups のドキュメントを参照する。

    • 「サポート技術情報」 (Microsoft Knowledge Base) で次の用語を検索します。

      tshoot、himem.sys、control、および a20 line

EMM386.EXE が UMB および EMS ページ フレームを探す方法

UMA スキャン アルゴリズム

デフォルトで、EMM386.EXE は以下の UMA 領域をスキャンします。
   MS-DOS 5.0: C800-DFFF

   Windows 3.1、Windows for Workgroups 3.1: C600-DFFF

   MS-DOS 6.0 以降、Windows for Workgroups 3.11 以降: C000-EFFF

注 :

一部のハードウェアでは、E000-EFFF 領域が別の方法で処理されます(後述の「EMM386.EXE および E000 セグメント」を参照)。

MS-DOS 6.0 以降、および Windows forWorkgroups 3.11 では、HIGHSCAN スイッチを使用することにより、範囲 F000-F7FF を含めることができます。

EMM386.EXE および E000 セグメント

Compaq 製のコンピュータでは、E000 セグメントにシャドウ RAM があるか、セグメントが使用されていません。シャドウRAM では、EMM 386.EXE が読み込まれる前に Int 10 ベクタがフックされていない場合、シャドウ領域が EMM386.EXEにより回収されます。これは、シャドウ領域に、C000 領域から再マップされたビデオ ROM のコピーが含まれているためです。

E000セグメントにはシステム ROM があるため、EMM368.EXE は MCA コンピュータ (IBM PS/2) の E000 を除外します。

他のコンピュータでは、E000 はデフォルトで除外されます。E000 領域が使用可能であると判断した場合、CONFIG.SYS ファイルのDEVICE=EMM386.EXE コマンドに I=E000-EFFF を追加することにより、E000 を明示的に含めることができます。

注 : EMM386.EXE は INCLUDE スイッチを検出すると、起こり得る競合をスキャンせずに領域を含めます。

EMS の一般的な問題

WARNING: Unable to Set Page Frame Base Address--EMS Unavailable

このエラーは、EMM386.EXE が EMS ページ フレームの UMA で、64K の連続した "ホール"を見つけることができない場合に表示されます。

LIM 3.2 仕様によると、ページ フレームは 4 つの連続した 16Kページで構成されており、LIM プロバイダによりページ フレームを設定する必要があります。

LIM 4.0 仕様によると、EMSプロバイダは 64K ページ フレームを設定する必要はありませんが、最低でも 16K ページを設定する必要があります。

EMM386.EXE は LIM 4.0 仕様に合致していますが、ページ フレームに使用できる 64K の連続したホールが見つからない場合は、EMSプロバイダとして読み込みを行いません。これは、LIM 3.2 アプリケーションの大半が、ページ フレームの存在を前提としているためです。

EMM 386.EXE は、Pn パラメータを使用することにより LIM 3.2 (64K) ページフレームを使用せずに読み込むよう強制できます。EMM386.EXE が LIM 4.0 プロバイダとして読み込みを行うことを強制した場合、LIM 3.2アプリケーションは実行しないでください。アプリケーションの製造元に問い合わせて、必要な LIM のバージョンを決定してください。

注: LIM 3.2 (64K) ページ フレームが必要な場合、ハードウェア デバイスの設定を変更して、UMA の連続した 64K領域を開放する必要があります。

EMS メモリプールのサイズを調整しました

このエラー メッセージは、コマンド ラインで要求された EMS メモリのすべてを EMM386.EXEが提供できない場合に表示されます。たとえば、DEVICE=EMM386.EXE 2048 を使用して、コンピュータには 1024K の XMSメモリしかない場合、EMM386.EXE はこのエラー メッセージを表示して、可能な限り EMS を提供します (EMM386.EXEが自分自身のコードとデータ用に一部の XMS メモリを使用して、それにより EMS が使用可能な XMS メモリの量が減る点に注意してください)。

NOEMS スイッチで Windows が EMS を提供できない

LIM 4.0 仕様によると、EMS ページはコンベンショナル メモリ (0-640K) に配置することもできます。EMM386EMS 行は、デフォルトで 256K から開始します。NOEMS オプションが指定されると、アダプタ領域 A000-FFFF のすべてのホールが UMBに使用され、EMM386.EXE は EMS を提供しません。

一度 Windows 3.0 が起動されて MS-DOSセッションが起動されると、EMM386.EXE は EMS を提供できる場合とできない場合があります。Windows が 386拡張モードで動作している場合、EMM386.EXE は MS-DOS セッションで EMS を提供できます。ただし、 EMS ページはコンベンショナルメモリに存在します。これにより、前述の LIM 3.2 アプリケーションの動作のために、問題が発生することがあります。

Windows3.1 386 拡張モード MS-DOS セッションでは、EMS は提供されません。

EMM386.EXE のバージョン履歴

MS-DOS 5.0                    4.20
MS-DOS 5.00a                  4.33
MS-DOS 6.0                    4.45
MS-DOS 6.2                    4.48
MS-DOS 6.21                   4.48
MS-DOS 6.22                   4.49
Windows 3.1                   4.44
Windows 3.11                  4.44
Windows for Workgroups 3.1    4.44
Windows for Workgroups 3.11   4.48
Windows 95                    4.95
Windows 98                    4.95

この資料に記載されている一部の製品は、マイクロソフトと関連のない他社の製品です。明示または黙示にかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。

関連情報

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

Additional query words: HWSCSI 6.22 5.00 5.00a 6.00 6.20 3.10 freeze stop lock conflict msdos

Keywords: kbinfo kbtshoot KB78557
Technology: kbAudDeveloper kbMSDOS500 kbMSDOS500a kbMSDOS600 kbMSDOS620 kbMSDOS621 kbMSDOS622 kbMSDOSSearch kbWFW310 kbWFW311 kbWFWSearch kbWin310 kbWin311 kbWin3xSearch kbWin95search kbWin98 kbWin98search kbZNotKeyword3

inserted by FC2 system