ASPI FAQ

Summary: FAQ (Frequently Asked Questions) on the ASPI (Advanced SCSI Programming Interface) layer.
 

Using the FAQ

The Table of contents below contains links to the answers given. From each answer, there is a link back to the table of contents, allowing you to navigate and find the information you are looking for.
We welcome corrections and additions at our e-mail.
Back to the Main FAQ Page.

Table of contents
1. What is the ASPI layer?
2. Some Perspectives
3. Files composing the ASPI layer
4. Versions of the ASPI layer
5. Error opening the ASPI manager
6. The Aspi_me program doesn't run after 1/1/1999
7. I don't see my CD-ROM or my Zip drive
8. Loading the ASPI manager under DOS/Windows 3
9. Sample config.sys for an AHA-154x adapter
10. Installing the ASPI manager under Windows 95/NT
11. ASPI error codes
12. Programming the ASPI layer
13. Does the OS need the ASPI layer?
14. A new ASPI driver in town


What is the ASPI layer? Back to ToC

The acronym ASPI means Advanced SCSI Programming Interface. The ASPI layer (also called ASPI manager) is a software layer which sits between applications (programs) and low-level drivers managing the (mostly SCSI) hardware. With the ASPI layer, an application can manage in a more general way all the interaction with the drives and other devices.
Thanks to some standardization of the methods used to access the hardware, we observe a kind of convergence amongst the drives (IDE, ATAPI, SCSI and SCSI-like [parallel port]). Therefore, more and more applications install and update the ASPI layer to do their job. Our transfer programs install the ASPI layer version 4.60[1021]. If you don't install this ASPI layer or don't upgrade to a version 4.57 or higher, the program can't see all the drives (notably, CD-ROM drives and Iomega Zip drives).
Please note that you must restart the computer to allow the new files to be loaded. It can also happen, on some configurations, that you'll have to do a cold reboot (power out and new start).

Some Perspectives Back to ToC

Are they other methods to access the hardware? One should note that the ASPI layer was a long time a mere competitor in the market, in front of another access methode, called CAM (Common Access method) which was standardized by ISO. At this time, Adaptec was not yet the quasi-monopoly it is today, and had a very liberal license politic (free Aspi license, free SDK, etc.).
This period ends with the launch of Windows 95, where the Aspi layer was recognized as a de facto standard and bundled with the OS. One should note that Microsoft did that to alleviate programmers the access to the hardware. Before Windows 95, one could use plain interrupts to do that, but it became difficult to do it from a plain application. Instead of creating a brand new access interface, it was easier to use some existing solution (it would have been difficult to port NT solutions to Windows 95).
From 1995, another evolution took place, the birth of the CD-ROM burning business. Adaptec chose to be a major actor in this sector and it became soon apparent that there was a contradiction between the hardware vendor (promoting the Aspi layer) and the software publisher (fearing the pressure of its competitors). Aspi licensing conditions changed at this time (Adpatec asked for the kind of software and even for the name of the programs which would be distributed with the Aspi layer).
One should also note that Microsoft had always a mixed attitude toward Aspi, since this software didn't implement any security feature (under Windows NT, as a service, the Aspi opened free access to hardware resources to plain users, without any rights attribution by an administrator).
We are now at the end of this period. I doubt that Adaptec will invest more resources in the development of the Aspi layer, because of the competition on the burning market and because of the convergence of both Windows in Windows XP. Applications will therefore have to use other methods to access drives (this is already the case for USB and FireWire disks under Windows 2000). Windows NT and its successors offer alternative access methods, IOCTL (Input/Output Control) and SPTI (SCSI Pass Through Interface), but there was little work done on both of them, mainly because the architect of the Aspi layer, Dan Polfer, did a very good job with its Aspi software.

Files composing the ASPI manager Back to ToC

Under Windows 95/98/ME:

Under Windows NT/2000:

You can check the version with a right-button click on each of those files. Select the 'Properties' item, then the 'Version' tab. You can also use our utility AspiTest (functionnally equivalent of Adaptec Aspicheck).

Error opening the ASPI manager Back to ToC

Under Windows 95/98, the error could come from a mismatch between the four files composing the Aspi layer. Windows 95/98 comes with a somehow old ASPI layer, which must often be updated.
Under Windows NT and Windows 2000, the ASPI drivers don't come with the operating system. Please note that you have to do the installation from an administrator account (with the right to install a service) and that you must reboot the computer.
Version mismatch. You can also get such an error because there are several copies of the files, bearing different version numbers, in several folders. Check your disk(s) for the presence of the files composing the Aspi layer and delete or rename all other ones.
Under Windows 3.1x, this error comes from the fact that your computer doesn't load the ASPI manager at startup. The ASPI manager should be loaded through command lines in your config.sys file. See a sample of correct command lines for the AHA154x adapter.

The Aspi_me program doesn't run after 1/1/1999 Back to ToC

The Aspi_me program, delivered with some versions of our programs, checks the computer date and refuses to install the drivers if run after the 1/1/1999. Steve Gibson intended to make a newer version available, but Adaptec objected.
The program is therefore unavailable, and you should not do what the program suggests (visit the www.grc.com site). You can nevertheless set the date of the computer to some date earlier than the 1/1/1999 just for the installation.

Versions of the Aspi layer Back to ToC

If you encounter problems and suspect the Aspi layer is in cause, please check the version of the files composing the Aspi layer. To this end, download our Aspitest. The version of the Aspi layer should be 4.57 or higher (preferably 4.60 [1021]).

I don't see my CD-ROM or my Zip drive Back to ToC

All the drives are shown in the Drive Selection dialogbox, but the CD-ROM drive and/or but the Zip drive. This behavior can occur suddenly, as the consequence of the installation of another application, like a CD-ROM burning software, which updates the Aspi layer.
To correct this situation, you'll have to edit the registry. Launch RegEdit to access your Registry and search for the string "ExcludeMiniports".
Under Windows NT/2000, this string is under the key:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
          Services
              Aspi32
                 Parameters
                     ExcludeMiniports
Under Windows 95/98, it is under the key:
HKEY_LOCAL_MACHINE
  System
    CurrentControlSet
       Services
          VxD
            APIX
              ExcludeMiniports

If the key "ExcludeMiniports" is present, its contents is probably "ATAPI". Right-click on the key and choose 'Modify', then delete the contents. Restart the computer. You should now access the CD-ROM (or other IDE/ATAPI drives) normally.
Caution: we saw at least a case where this locking was useful. After the change described above, the computer crashed whenever a program used the ASPI layer to access the CD-ROM. We don't know any solution to access the CD-ROM in this case, but changing the drive.
We observed that the Aspi installer can easily get confused by some configurations, where it doesn't know where to create the ExcludeMiniports key and doesn't do its job. The consequence is that the ATAPI drives are locked out anyway and don't appear in the list (in other words, the locking out of the drives happens (1) if there is no key or (2) if the key exists and contains "ATAPI").
Under Windows NT/2000, you should open RegEdit and create a "Parameters" key under Aspi32, then leave the Default key as undefined and create a key named ExcludeMiniports whose contents is an empty string. You can do that for each of the control sets, but the control set which matters is the CurrentControlSet.
Under Windows 95/98, the same happens it the Aspi installer didn't create the APIX key. You would then have to create the APIX key, then the "ExcludeMiniports" key (see above).
You can also download our utility AspiTest to do that (click on the button "Registry" when the program displays the version number of the Aspi files.
The causes of disappearing drives may be different under Windows 2000.

Loading the ASPI manager under DOS/Windows 3 Back to ToC

Under Windows 3 and DOS, you have to load the ASPI manager (Advanced SCSI Programming Interface) to drive the devices and cooperate with our programs. Even if the adapter Bios can drive one or two hard disks without drivers, it is better to load one to correctly manage removable media.
On our distribution disks is a little test program called ListDev. Start it under DOS (not directly in a DOS box, you couldn't read the display!). If the ASPI manager is loaded, you should find in the left column the string "SCSIMGR$".
If not, you have to add commands like "device=" in your config.sys. The exact commands may vary according to your hardware. You will find below an example for an AHA-154x Adaptec adapter.

Sample config.sys for an AHA-154x adapter Back to ToC
...
device=c:\...\aspi4dos.sys /d
device=c:\...\aspidisk.sys /d
...

These two lines should be in this order. The first one is a kind of Bios layer, the second a kind of Dos layer. The first driver should never be loaded in high memory. The second can be. If you use these drivers, you don't need to load the special drivers that some hardware vendor bundle with their drives (like SyQuest, IOmega, etc.).

Installing the ASPI manager under Windows 32 bits Back to ToC

Our programs are installed with the latest version of the ASPI layer, licensed from Adaptec. It is stored in a subfolder named ASPI in the installation folder. You should launch the aspiinst.exe installer if you want to upgrade your ASPI layer.
Under Windows NT, please note that you have to do the installation from an administrator account (to be able to install the service). After that, reboot the computer.
This installation occurs automatically when installing our programs, but you may have to redo it yourself for some reasons (ill-behaved program installing a former version, errors during the installation).

ASPI error codes Back to ToC

According to the documentation in the ASPI software development kit, possible Aspi error codes are:

#define SS_INVALID_CMD		0x80		// Invalid ASPI command
#define SS_INVALID_HA 0x81 // Invalid host adapter number
#define SS_NO_DEVICE 0x82 // SCSI device not installed
#define SS_INVALID_SRB 0xE0 // Invalid parameter set in SRB
#define SS_OLD_MANAGER 0xE1 // ASPI manager doesn't support Windows
#define SS_ILLEGAL_MODE 0xE2 // Unsupported Windows mode
#define SS_NO_ASPI 0xE3 // No ASPI managers resident
#define SS_FAILED_INIT 0xE4 // ASPI for windows failed init
#define SS_ASPI_IS_BUSY 0xE5 // No resources available to execute cmd
#define SS_BUFFER_TO_BIG 0xE6 // Buffer size to big to handle!
#define SS_MISMATCHED_COMPONENTS 0xE7 // The DLLs/EXEs of ASPI don't version check
#define SS_NO_ADAPTERS 0xE8 // No host adapters to manage
#define SS_INSUFFICIENT_RESOURCES 0xE9 // Couldn't allocate resources needed to init
#define SS_ASPI_IS_SHUTDOWN 0xEA // Call came to ASPI after PROCESS_DETACH
#define SS_BAD_INSTALL 0xEB // The DLL or other components are installed wrong

Some comments:
E4: This error code comes in a correct Aspi configuration when an older DLL is stored in the folder of the application trying to connect to the Aspi manager. Launch a search on all four files composing the Aspi layer and delete or rename all copies which are not in the specified folders.
E8: Seen on a computer with only a an IDE/ATAPi CD-ROM and a Zip drive, also ATAPI. This machine had no SCSI adapter (see the comment above "No host adapters to manage"). We found thereafter that the Aspi installer had itself barred the access to the IDE/ATAPI drives. It seems that this behavior (error code of E8) is new to version 4.60[1021] of the Aspi manager. See above the solution given for the invisible CD-ROM/Zip drives.
EB: This seems to be a catch-all error code. Some user reported it while using Easy CD Creator. The real reason remains to be found.
The other error codes should be self-explanatory.

Programming the ASPI layer Back to ToC

For a long time, the best source of information to program the ASPI layer was the ASPI SDK, freely distributed by Adaptec and also to be found on some CD-ROMs of the MSDN. For some reasons, it seems that Adaptec decided not to promote any more the use of the ASPI layer.
For those seeking for information on how to program the ASPI layer, I've found an interesting source of basic information at Alvise Valsecchi's site. This information should be enough to get you started.

Does the OS need the ASPI layer? Back to ToC

Some persons, in particular in the newsgroups about CD-ROM burning, often say that Windows 2000 or XP (or still other ones) "needs" or "doesn't need" the ASPI layer. This is an incorrect way of stating things. The OS doesn't "need" the ASPI layer. It can be delivered with an ASPI layer (as in the case of Windows 95) or not (as with Windows NT). It doesn't call any functions in the DLLs building the ASPI layer.
On the other hand, applications (programs) call the ASPI layer to access lower-level functions and ultimately the hardware. That means that only applications (programs) can be the cause of incompatibilities bound to the Aspi layer.

A new ASPI in town Back to ToC

A new Aspi driver was developped by Bertrand Danos. See the FrogAspi Web site.

  Back to ToC

 
Pierre Duhem (ex-Logiciels & Services Duhem)
3, rue Pierre Haret - F-75009 Paris (France) - Tel. (+33) [0]149 700 455
web: http://www.macdisk.com