Advanced SCSI Programming Interface

ASPI (Advanced SCSI Programming Interface, sinngemäß Erweiterte SCSI-Programmierschnittstelle) ist eine Programmierschnittstelle für die einheitliche Ansteuerung von CD-ROM\- bzw. DVD-Laufwerken, insbesondere Brennern unter den Betriebssystemen MS-DOS, Windows, OS/2 und Netware. Anders als der Name vermuten lässt, wird ASPI nicht nur für tatsächliche SCSI-Geräte, sondern auch für Geräte mit ATAPI-, USB\- und FireWire-Anschlüssen eingesetzt, da diese ebenfalls das SCSI-Kommunikationsprotokoll einsetzen.

## Funktionsweise

[Bearbeiten | Quelltext bearbeiten]

Eine ASPI-Manager genannte Software stellt eine Schnittstelle zwischen sogenannten ASPI-Modulen (Gerätetreiber bzw. Anwendungen mit direkter SCSI-Unterstützung), einem SCSI-Hostadapter (ugs. SCSI-Controller), sowie daran angeschlossenen SCSI-Geräten zur Verfügung. Diese Software ist spezifisch für einen Hostadapter und ein Betriebssystem geschrieben; sein Hauptzweck ist dabei, die Eigenheiten des Hostadapters zu abstrahieren und eine einheitliche Zugriffsmethode zur Verfügung zu stellen.

Unter DOS wird diese Schnittstelle schließlich von einem ASPI-fähigen Laufwerkstreiber verwendet, der dem Betriebssystem den Laufwerksinhalt bereitstellt.

Unter Windows 9x und Windows NT ist der ASPI-Manager hingegen universell und stützt sich auf die bereits vom Betriebssystem bereitgestellten Gerätetreiber. Daher konzentrieren sich die Fähigkeiten des ASPI-Managers hier weniger auf eine ggf. bereits hergestellte SCSI-Verbindung, sondern auf das Senden von standardisierten SCSI-Kommandos an z. B. auch ATAPI-Geräte (SCSI-Pass-Through-Funktionalität), wie sie vor allem Brennprogramme benötigen, und das Erkennen dazu befähigter Geräte.

## Geschichte

[Bearbeiten | Quelltext bearbeiten]

ASPI wurde etwa 1990 von Adaptec entwickelt, einem damals führenden Hersteller von SCSI-Hostadaptern. Vorbild war das im Jahr 1983 von Douglas Goodall erdachte Treibermodell für SCSI-Geräte an Ampro-Computern, das von einem eingeweihten Ampro-Mitarbeiter übernommen wurde, als er zu Adaptec wechselte.[1] Anfänglich wurden die Betriebssysteme DOS, Windows 3.x, OS/2 und Netware unterstützt. Ursprünglich konnten nur SCSI-Geräte angesprochen werden; mit der steigenden Verbreitung von CD-Brennern Mitte der 1990er-Jahre folgte Unterstützung für ATAPI-Geräte, da die bisher verwendete Schnittstelle noch keine Schreibzugriffe auf CDs vorsah. Die Hersteller von SCSI-Hostadaptern (zum Beispiel BusLogic, DPT, AMI, Future Domain, DTC) lieferten zusammen mit ihrer Hardware eigene ASPI-Manager aus,[2] womit sich ein softwareseitiger Standard etablierte.

Adaptec lieferte auch universelle DOS-Treiber für SCSI-Festplatten (ASPIDISK.SYS) und CD-ROM-Laufwerke (ASPICD.SYS). Für den Lesezugriff auf CD-/DVD-ROM-Laufwerke unter Windows 3.x reicht ein unter DOS installiertes Laufwerk aus, der Windows-3.x-Treiber (WNASPI.DLL) ist nur für Windows-Brennprogramme notwendig.

Unter DOS muss für SCSI Festplatten mit einer Kapazität von über 1 GiB das SCSI BIOS des Host Adapter eine Unterstützung für den Extended BIOS Translation Support bieten, dieses erlaubt dann Festplatten bis zu einer Größe von 8 GiB unter DOS zu verwenden. Alternativ zum SCSI BIOS kann auch der ASPIDISK.SYS Treiber geladen werden, der diese Unterstützung dann auch mitbringt.

Microsoft lizenzierte die ASPI-Treiber von Adaptec und lieferte sie zusammen mit seinen Windows 9x-Betriebssystemen aus. Währenddessen entwickelte Microsoft mit SPTI (SCSI Pass-Through Interface), einen hauseigenen Ersatz für ASPI zur Verwendung mit Windows NT. Daher wurde in 2000, XP und Windows Server 2003 zugunsten von SPTI auf einen eingebauten ASPI-Treiber verzichtet. Da der Standard jedoch schon weit verbreitet war, lieferten Hersteller von Hardware sowie von Brenner-Software weiterhin ASPI-Manager aus, um bestehende Kompatibilität beizubehalten. SPTI hingegen kann nicht auf anderen Systemen nachinstalliert werden.

Für die Unterstützung von USB-Laufwerken unter DOS entwickelte Panasonic einen universell verwendbaren ASPI-Treiber (USBASPI.SYS), der gleichzeitig das Fehlen von nativer USB-Unterstützung durch DOS umgeht.

Bei Adaptec endete im November 2003 mit der Versionsnummer 4.71.2 die Entwicklung der offiziellen ASPI-Treiber.

## Treiber

[Bearbeiten | Quelltext bearbeiten]

ASPI wird hauptsächlich durch die folgenden Treiber bereitgestellt.

Betriebssystem  | Treiberdatei(en)  | Mitgeliefert

|
|

DOS  | Ein Host-Adapter SCSI-Controller spezifischer Treiber (z. B. `ASPI2DOS.SYS`, `ASPI4DOS.SYS`, `ASPIEDOS.SYS`, `ASPI7DOS.SYS`, `ASPI8DOS.SYS`, `ASPI8U2.SYS` oder diverse OEM Treiber) und `ASPIDISK.SYS` (für SCSI-Festplatten wenn das SCSI BIOS des Host Controllers nicht installiert ist oder dieses für Festplatten über 1 GiB Größe nicht über das Feature Extended BIOS Translation Support verfügt), `ASPICD.SYS` (für SCSI CD-ROM-Laufwerke), `USBASPI.SYS` (für USB-Laufwerke)[3][4] |  Nein
OS/2 1.1  | `ASPI4OS2.SYS` |  Nein
OS/2 2.1, Warp  | `OS2ASPI.DMD` |  Ja
NetWare 2.15  | `ASWNOVL.OBJ` und `ASWNOVL.DSK` |  Nein
NetWare 3.x  | `ASPITRAN.DSK` |  Nein
Windows 3.1x  | `WINASPI.DLL` |  Nein
Windows 95, 98 und ME  | `WNASPI32.DLL`, `WINASPI.DLL`, `APIX.VXD`, `ASPIENUM.VXD` |  Ja
Windows NT, 2000, XP und 2003  | `WNASPI32.DLL`, `ASPI32.SYS` |  Nein

## Weblinks

[Bearbeiten | Quelltext bearbeiten]

### Dokumentation

[Bearbeiten | Quelltext bearbeiten]

* Adaptec: ASPI for Win32 Technical Reference (englisch), 6. November 2001.

### Treiber

[Bearbeiten | Quelltext bearbeiten]

* Adaptec ASPI-Teiber für DOS (16 bit), Stand 25. Februar 2000.
* Adaptec ASPI-Teiber für Windows (32 bit), Stand 23. November 2003, zuletzt veröffentlichte Version 4.71.2.
* ForceASPI (Memento vom 6. Juni 2003 im Internet Archive), Installationshilfe für ASPI-Treiber unter Windows.

## Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]

1. ↑ Douglas W. Goodall – Ampro Computers. Abgerufen am 28. Januar 2017 (englisch): „I worked briefly at Ampro in order to modify the CP/M-80 BIOS for the Little Board Z80 to support SCSI hard disk operations. […] I suggested my skills would be better used working with a 16-bit card such as an 80186. […] I wrote the SCSI support for that board as well. […] I taught a staff employee the principles of my driver architecture. He then left Ampro and went to work for Adaptec, where he reproduced my driver architecture and it ended up being called ASPI.“
2. ↑ Ben Myers: More on ASPI. Abgerufen im 1. Januar 1 (englisch).
3. ↑ https://storage.microsemi.com/en-us/speed/scsi/dos/dosdrvr_exe.php
4. ↑ https://web.archive.org/web/20210224001800/https://download.adaptec.com/scsi/dos/dosdrvr.exe