XXCOPY

DATMAN TECHNICAL BULLETIN #028



From:    Kan Yabumoto           tech@datman.com
To:      DATMAN user
Subject: Updating ASPI-for-Win32 for your Windows 95/98
Date:    2000-09-10   (Original post 1999-04-23)
====================================================================

This article applies to nearly all of you who run DATMAN-99 and have
not heard about the ASPI update released by Adaptec.  The latest ASPI
version for Windows as of this writing is ver 4.60 which was released
September 1999.

We hear a number of DATMAN users having problems running DATMAN
using old SCSI drivers whose problems disappear once a new drivers
are installed.  Therefore, we recommend the update to all DATMAN users.

Let me start with a brief description of history and where ASPI fits
into the Windows 95/98 system.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

About ASPI and WNASPI32.DLL

  ASPI stands for "Advanced SCSI Programming Interface" which was
  proposed by Adaptec for DOS and OS/2 (and later extended to support
  NetWare and other environments) and has been the most widely used
  SCSI API standard.  DATMAN has always used the ASPI protocol to
  access the tape device.  More recently ASPI-for-Win32 was released
  by Adaptec to support Windows 95/98 and Windows NT.

  DATMAN-99 interacts with your DDS (or other compatible) tape drive
  via the ASPI-for-Win32 device driver, namely, WNASPI32.DLL which
  is usually stored in your C:\Windows\System directory.  This module
  in conjunction with the lower level port drivers (.MPD) replaces
  the more familiar ASPI device drivers such as ASPI4DOS.SYS and
  ASPI7DOS.SYS if you have experience operating SCSI devices under DOS.

  But, many people are not aware of the existence of WNASPI32.DLL
  since its installation is performed transparently when your Win95/98
  system is first installed on your system.  The WNASPI32.DLL file is
  distributed in the official Microsoft Windows 95/98 install CD-ROM.
  It is seldom mentioned and generally trouble-free for most people.

  Unlike its predecessor (the Real-mode ASPI Manager), ASPI-for-Win32
  scheme splits the SCSI hardware interface API into two parts,
  the Win32 API layer (Ring-3, DLL) and the Virtual Driver layer
  (Ring-0, VxD).
  
  The first stage, the Win32 API is handled by just one universal
  library module (WNASPI32.DLL) which is not hardware specific.
  The second stage, the VxD layer is hardware-dependent and
  therefore must be supplied by the hardware manufacturer.  In many
  instances, Microsoft's Win95/98 CD-ROM contains many common
  drivers and therefore, the driver headache for SCSI is now mostly
  gone, thanks to the Plug-N-Play scheme.  Most of these VxD drivers
  are stored in the C:\Windows\System\iosubsys directory.
  AIC78XX.MPD, SPARROW.MPD, NCRC810.MPD, SCSIPORT.PDR are such
  drivers.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Problems

  Although we have not had any first hand experience of SCSI
  driver-related problems, our experience in customer support 
  suggests that the problems are more common in SCSI host adapters
  which are not manufactured by Adaptec.  We are not saying that
  the other manufacturers' hardware products are inferior to
  Adaptec's brand.  We suspect the problem lies in the device
  drivers.  As mentioned earlier, currently the SCSI drivers
  consist of the low-level driver (VxD) and middle level
  WNASPI32.DLL.  The trouble is that the pivotal software
  component, WNASPI32.DLL is not written by Microsoft, but by
  Adaptec.  Since Adaptec's lower level device drivers work well
  with virtually any version of WNASPI32.DLL, there is little
  incentive for Adaptec to have Microsoft include the revised
  and more stable version.  It's a case of conflict of interest.
  
  We have discovered some subtle inconsistency in the way various
  WNASPI32.DLL versions were written (for example, ordinal values
  of exported functions in the DLL are different from one version
  to another).  Also, we can demonstrate that mixing different
  versions of various SCSI driver components causes the system to
  freeze even when we use only Adaptec's hardware.  Therefore we
  strongly recommend that you acquire all of the following driver
  components from Adaptec's web site (they are free).
  
    WNASPI32.DLL   Ver 4.60   1999-09-10   45,056 bytes
    WINASPI.DLL    Ver 4.60   1999-09-10    5,600 bytes
    ASPIENUM.VXD   Ver 4.60   1999-09-10    7,743 bytes
    APIX.VXD       Ver 4.60   1999-09-10   22,603 bytes
 
    Note that the first three files are in \Windows\System,
    and the last one in \Windows\System\Iosubsys.

  The previous release was Version 4.57 which was quite stable.
  We assume the latest version includes more improvements. 


* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Checking and updating the SCSI drivers on your Win95/98 system

  Since the file dates of Microsoft's SCSI drivers vary from one
  language version to another (the file size seems to stay the same),
  it is risky to use the file date to distinguish the version.
  But, so far, all WNASPI32.DLL drivers from Microsoft's Win9x
  CD-ROMs show the same version number (1.00).

  The easiest way to check the version number of various SCSI drivers
  on your system is to run the ASPICHK software published by Adaptec. 

    ftp://ftp.adaptec.com/software_pc/aspi/aspichk.exe

  There is a fair chance that the program will display a warning
  message and suggest you to update your SCSI drivers with their
  latest versions.  Practically everybody who has not done this
  download, should go ahead and download the newest from Adaptec:

    ftp://ftp.adaptec.com/software_pc/aspi/aspi32.exe
  
  The ASPI32.EXE program will automatically replace all Adaptec SCSI
  drivers on your Windows system with their latest versions.


* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

There is a catch for those who do not have an Adaptec hardware.

  If your SCSI host adapter is not Adaptec brand, the ASPI32.EXE
  program refuses to update your driver (namely, WNASPI32.DLL).
  Ironically, those who seem to need the update most are deprived of
  the opportunity to get the update from Adaptec (and Microsoft does
  not get involved in this which is quite odd).  Apparently, Adaptec
  uses its device drivers to maintain its monopoly of the SCSI adapter
  market.  It makes an obscene profit with the SCSI adapters which are
  often priced much higher than most motherboards. (Also, Adaptec
  continues to buy out companies which provide an alternative in SCSI
  hosts.)  This is pretty bad if you don't have an Adaptec's host
  adpater.  Because Microsoft does not provide you with the latest
  drivers and Adaptec makes it hard for you to run their update software. 

  Fortunately, there is a way to overcome this nuisance.  ASPI32.EXE
  does not check the existence of Adaptec hardware on your system.
  Instead, it checks the presence of any of the SCSI port drivers
  for Adaptec hardware.  After all, ASPI32.EXE is a well-behaving
  application which does not interact with hardware directly (or
  rephrasing it, it is not practical to write a regular program which
  checks the exisence of a SCSI hardware without being a device driver
  itself). 
  
  Therefore, all you need to do is to pretend that you have an
  Adaptec hardware and manually install the necessary drivers
  for Adaptec's host adapter.  That is, Windows 9x allows you to
  install any device driver manually whether or not you have the
  target hardware on your system.
  
  Here is how...
  
   1.  Select [ Control_Panel > Add_New_Hardware ]

   2.  When the "Add New Hardware Wizard" checks for new devices,
       shows you a device list for installation, and asks you to
       make a selection,  you should choose:
       
       (o) No, the device isn't in the list.
       
   3.  In the following page the Wizard will ask you:
       "Do you want Windows to search for your new hardware?"
    
       (o) No, I want to select the hardware from a list.

   4.  Select the type of hardware you want to install.
       then highlight "SCSI Controller" and click Next.

   5.  Select Adaptec as the manufacturer in the left hand side box,
       and select "AHA-1510 SCSI Host Adapter" in the right hand side.
       Do not click the [Have Disk...] button here but click Next.
       (See, the Note below if you had problems the first time.)

   6.  Proceed with the Next and Finish buttons to end the Wizard.
       This procedure copies a low-level SCSI driver from the Win9x
       setup source.

   7.  Run ASPI32.EXE which should install the necessary SCSI-related
       driver modules into your computer.

   [Note]  In rare cases where ASPI32 still comlains that Adaptec SCSI
           Host is not found, you should repeat from Step 1.  The next
           time, in Step 5, try a different model (some users reported
           that selecting a Plug-and-play adapter worked for them).  

 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Related web sites

  About the ASPI updates
     http://www.adaptec.com/support/faqs/aspilayer.html

  Adaptec Host Adapters and Device Drivers
     http://www.adaptec.com/support/files/drivers.html

[ More Technical Bulletins ] [ DATMAN Table of Contents ]