Advanced SCSI Programming Interface

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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.

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 ASPI4DOS.SYS bzw. USBASPI.SYS (für USB-Laufwerke) 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]

Treiber[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Douglas W. Goodall – Ampro Computers. Abgerufen am 28. Januar 2017: „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.