Troubleshooting SMARTDrive Version 4.0

Last reviewed: November 23, 1994
Article ID: Q84706
This information applies to:
  • Microsoft Windows operating system versions 3.1, 3.11

SUMMARY

SMARTDrive version 4.0 (SMARTDRV.EXE), which comes with Microsoft Windows version 3.1, should run on almost any computer system. This article discusses troubleshooting steps that may be needed to get SMARTDrive to work with your system.

There are three situations covered by this article:

  • Your computer runs properly without SMARTDrive loaded.
  • Your computer requires SMARTDrive to run properly (that is, SCSI controller).
  • You need to simulate SMARTDrive memory use to see if SMARTDrive is adversely affecting your system.

MORE INFORMATION

Computer Runs Properly Without SMARTDrive

Situation: During standard troubleshooting, you start the system without SMARTDrive, and the problem no longer exists.

Use the following steps to get SMARTDrive running:

  1. Third-party device drivers in the CONFIG.SYS file for external floppy drives or removable hard drives may cause SMARTDrive not to function properly. If possible, work from a bootable floppy and do not load these drivers. See if SMARTDrive loads and runs properly. If it does, then contact the company who wrote the driver.

    Also, SMARTDrive cannot cache a CD-ROM device because a CD-ROM is viewed as network drives.

  2. Make sure you are not using another cache at the same time you are using SMARTDRV.EXE.

    If you have an external RAM cache module attached that isn't functioning correctly, Windows will stop responding (hang) in enhanced mode. Disconnect the plug-in cache module and Windows should run in enhanced mode. (You should replace the RAM cache module.)

  3. Load SMARTDRV.EXE low into conventional memory with /L on the command line in the AUTOEXEC.BAT file:

          c:\windows\smartdrv.exe 2048 1024 /l
    

    SMARTDRV.EXE will automatically load itself into upper memory blocks (UMBs) if they are free. If the /L corrects the problem, there may be a range of memory that must be excluded with your UMB manager, such as EMM386.EXE, located in the CONFIG.SYS file.

    For example, if you have a network card that does not correctly "check in" to the UMA and is using the address range D800-DFFF, then configure EMM386.EXE to exclude that range by modifying the command line in the AUTOEXEC.BAT file:

          c:\windows\emm386.exe noems x=d800-dfff
    

  4. If SMARTDRV.EXE, while loaded low, is still causing the problem, then modify the AUTOEXEC.BAT command line as follows so that it does not cache "writes"

          c:\windows\smartdrv.exe 2048 1024 a b c d
    

    where A, B, C, and D are drives to "read" cache only.

  5. Modify the SMARTDRV.EXE line in the AUTOEXEC.BAT command line to turn off caching of any type for all drives, as follows:

          c:\windows\smartdrv.exe 2048 1024 a- b- c- d-
    

    If this corrects the problem, then activate one driver at a time by removing the hyphen (-) from after the drive letter. This is sometimes necessary when using third-party floppy drivers or disk compression software in the CONFIG.SYS file.

    SMARTDRV.EXE knows the footprint of Stac Electronics Stacker version 2.0 and does not require a drive letter to be excluded. Earlier versions of Stacker require excluded drive letters.

  6. Stacks in the CONFIG.SYS may be set too low and cause the system to lock or hang. Try the following value for stacks:

          Stacks=9,256
    

  7. If you do not have enough free memory for an application to run in MS-DOS or in Windows, then check the values you have set for the SMARTDRV.EXE cache. Also, if you have to type WIN /3 to get into 386 enhanced mode, then your cache sizes may be too large.

  8. If SMARTDRV.EXE is still causing the problem, then try using the SMARTDRV.SYS file that came with MS-DOS 5.0 or Windows 3.0. This earlier SMARTDRV.SYS file loads from the CONFIG.SYS file.

Computer Requires SMARTDRV.EXE to Run Properly

When Windows is installed, it tests the hard drive to see if it can understand it for advance features such as 32-Bit Disk Access. If it cannot, then it installs SMARTDRV.EXE in the CONFIG.SYS file with the /double_buffer switch (as in the following example), and in the AUTOEXEC.BAT as normal. This usually occurs with SCSI and some ESDI controllers.

   device=c:\windows\smartdrv.exe /double_buffer

  • If you cannot get into 386 enhanced mode, have problems running applications from 386 enhanced mode, or get Violate System Integrity error messages, then add a + to the command line in the CONFIG.SYS file, as follows:

          device=c:\windows\smartdrv.exe /double_buffer+
    

    Note: Do Not load SMARTDRV.EXE high in the upper memory blocks (UMBs) in the CONFIG.SYS file.

  • If SMARTDRV.EXE is slower than the SMARTDRV.SYS file that came with Windows 3.0 and MS-DOS 5.0, then have SMARTDRV.EXE load low with the /L switch.

    /DOUBLE_BUFFER slows down the system. If you want to avoid using /DOUBLE_BUFFER, obtain updated ROM for your hard drive adapter, or obtain a Virtual DMA Services (VDS) driver from the manufacturer of your controller.

    Simulating SMARTDrive Memory Usage for Testing

    Sometimes, problems are caused by memory configurations unrelated to but exacerbated by SMARTDrive. To verify that a problem is related to the memory configuration, and not SMARTDrive, RAMDrive can be loaded using the same amount of extended memory as SMARTDrive. You may have to manipulate the free conventional memory to match when RAMDrive is loaded instead of SMARTDrive. You can do this by loading a terminate-and-stay-resident (TSR) program that causes the first free block of memory to be in the same place as before. You can do this using MS-DOS 5.0 with the following steps:

    1. Use the MEM /DEBUG command to show how much conventional memory is available when SMARTDrive is loaded.

    2. Edit the CONFIG.SYS and AUTOEXEC.BAT files. Add RAMDrive to the CONFIG.SYS file and remove SMARTDrive from the AUTOEXEC.BAT file path.

    3. Load TSRs to reduce the free conventional memory to the value found in step 1. The MS-DOS 5.0 utility DOSKEY is convenient for this because you can control its conventional memory size with the /REINSTALL /BUFSIZE= parameters.


  • KBCategory: kbother kbdisplay kbtshoot
    KBSubcategory: win31 winmem
    Additional reference words: 3.10 3.11 SCSI scuzzy Future Domain tshoot


    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.