SMARTDrive /double_buffer Cannot Load into UMBs

Last reviewed: November 23, 1994
Article ID: Q81377
The information in this article applies to:
  • Microsoft Windows operating system versions 3.1, 3.11

SYMPTOMS

Attempting to load SMARTDrive version 4.0 (SMARTDRV.EXE) as a double-buffer driver into the upper memory area (UMA) generates the following error message:

   Double buffering driver cannot be loaded into a UMB. Do not use the
   devicehigh command or other load-high utilities to load
   Smartdrv.exe.

CAUSE

When loaded in the CONFIG.SYS file as a device driver to provide double buffering, SMARTDRV.EXE must be loaded in conventional or low memory. Even if a memory manager is present that allows programs to be loaded into the UMA, SMARTDRV.EXE must be loaded low if it is being used as a double-buffering device driver.

NOTE: There is no workaround for this problem.

MORE INFORMATION

The double buffering that SMARTDRV.EXE provides is required for certain Bus Master disk controllers when running in the Virtual 8086 mode of the 80386 and 80486 processors.

Improved compatibility between Virtual 8086 mode and these older controllers depends on the fact that the buffer (approximately 2K) that SMARTDrive uses for the purposes of double buffering loads into an address that is identical to its location in physical memory.

386 memory managers, such as EMM386.EXE, allow you to load device drivers and terminate-and-stay-resident (TSR) programs into upper memory blocks (UMBs) by using the ability of 80386 and 80486 processors to remap addresses between 640K and 1024K into physical extended memory. Because this reassigning of addresses would prevent SMARTDRV.EXE's double buffer from residing at an address compatible with its location in physical memory, SMARTDRV.EXE must remain in conventional memory.

NOTE: This information does not apply if you are using SMARTDRV.EXE version 4.0 as a disk cache in the AUTOEXEC.BAT file. The ability to provide double buffering is independent of SMARTDRV.EXE's role as a disk cache. You can load SMARTDRV.EXE with the /double_buffer option low in the CONFIG.SYS file, and load SMARTDRV.EXE, the disk cache, high in the AUTOEXEC.BAT file.

For more information on double buffering and SMARTDRV.EXE, query on the following words in the Microsoft Knowledge Base:

   smartdrv.exe and double and buffer and bus and mastering


KBCategory: kbother kbinterop
KBSubcategory: win31
Additional reference words: 3.10 SCSI winmem 3.11


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: November 23, 1994
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.