Problems with RAM Disks or Caches in Expanded Memory

Last reviewed: April 17, 1995
Article ID: Q88672
The information in this article applies to:
  • Microsoft FoxPro for MS-DOS, versions 2.0, 2.5, and 2.5a

SUMMARY

The following information applies only to expanded memory, NOT extended memory.

Products that create RAM disks or do some form of disk caching using expanded memory may not be compatible with FoxPro versions 2.0 or 2.5 for MS-DOS. If you are running a program that creates a RAM disk or disk cache in expanded memory, FoxPro's performance may be affected and data may be lost or damaged when a cache is used.

To avoid these problems, use RAM drivers that create caches in extended memory, not expanded.

FoxPro does not work well with RAM caches in expanded memory because FoxPro performs its own internal caching.

MORE INFORMATION

If EMS=ON is in your CONFIG.FP file, FoxPro does much of its I/O directly into expanded memory. RAM disk or disk-caching programs that also perform I/O directly into expanded memory may conflict with FoxPro's usage of expanded memory.

When FoxPro requests that MS-DOS perform an I/O transfer into the expanded memory page frame, the RAM disk or caching program intercepts FoxPro's call to MS-DOS and tries to affect the I/O data transfer. The following are conditions under which problems occur:

  • Some programs fail to allocate the expanded memory they are using, which in turn causes a conflict with FoxPro because FoxPro is trying to use the same memory.
  • Some programs fail to restore the expanded memory page frame to its original address prior to the I/O request, which causes FoxPro to look in the wrong area when performing an I/O operation.
  • Some programs fail to note that the address in which the data will be read is in the page frame itself. Other caches remap the page frame so that it contains their I/O buffers; they then copy data from their buffers to the I/O transfer address, failing to note that this address is in their own buffer. As a result, data in their buffer is corrupted.

Nothing can be done to correct these deviations from proper expanded memory usage (as defined by the expanded memory specification [EMS]). For these reasons, we recommend that cache programs based on expanded memory not be used.


Additional reference words: FoxDos 2.00 2.50 2.50a
KBCategory: kbprg
KBSubcategory:


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: April 17, 1995
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.