![]() |
Frequently Asked Questions | ||||||||||||||||||||||||||||||
| Summary: FAQ (Frequently Asked Questions) on the ASPI (Advanced SCSI Programming Interface) layer. | |||||||||||||||||||||||||||||||
|
|
Using the FAQ
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).
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.
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 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.
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.
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.
... 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.).
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).
#define SS_INVALID_CMD 0x80 // Invalid ASPI command
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.
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.
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.
| ||||||||||||||||||||||||||||||
![]() |
|