Advanced SCSI Programming Interface
もともと ASPI は MS-DOS および NetWare 向けに提唱された。 当時これらの OS ではドライバモデルが未成熟で、SCSI アダプタのドライバと SCSI 装置のドライバが一体化している(モノリシック)のが一般的であった。 すなわち、SCSI アダプタのメーカーや製品と、SCSI 装置のデバイスクラスや製品の組み合わせごとに個別にドライバが必要であり、開発者にとっては開発の負担、利用者にとってはドライバの入手困難を招いていた。また、複数のドライバをインストールして利用する場合に、各ドライバがそれぞれに SCSI アダプタや SCSI 装置を制御している点でも好ましくなかった。
そこでアダプテックは、SCSI アダプタのドライバ(ASPI マネージャ)と SCSI 装置のドライバ(ASPI ドライバ)を分離するデバイスモデル、およびその間を結ぶ共通の API の仕様を提唱した。これが ASPI である。 これにより、SCSI アダプタのメーカーは自社製品の ASPI マネージャだけを、SCSI 装置のメーカーは自社製品の ASPI ドライバだけを開発すればよく、開発の負担が大きく軽減された。 利用者にとっても、自分の利用している SCSI アダプタと SCSI 装置の組み合わせを気にすることなく、ASPI マネージャと ASPI ドライバをインストールすれば事足りるようになった。
MS-DOS
Windows 3.1
Windows 9x系
Windows NT系
NetWare
OS/2
このように、ASPI の本質はドライバモデルにあるということができる。 しかし、このようなドライバモデルはまともな OS なら本来当然備えているべきものであり、PC 用の OS でも OS/2、Windows 95、Windows NT などではもともと備えていた。 そのため、これらの OS にも ASPI は提供されたものの、その役割は「SCSI アダプタのドライバ」ではなく「DOS の ASPI と似たソフトウェアインターフェイスを提供するラッパー」に過ぎないもの、すなわちASPI レイヤーとなり、CD-R やイメージスキャナを制御するアプリケーションなど一部で利用されるにとどまった。
それでも、Windows 95 系列では ASPI レイヤーが OS 標準で付属していたため、それなりに使われてもいたが、Windows NT系列においては、ASPIレイヤーが OS に標準で付属しておらず、SCSI を制御する標準ソフトウェアインターフェイスとしてSPTI (SCSI Pass-Through Interface) が新たに定義されたことにより、ASPI の存在意義は限りなく薄いものになってしまった。