Advanced SCSI Programming Interface ( ASPI ) はAdaptecによって開発されたプログラミング インターフェイスで、 SCSIドライバモジュールと SCSI (およびATAPI )周辺機器間のコンピュータ バス上の通信を標準化します。[ 1 ] : 55–56 [ 2 ]
ASPIマネージャソフトウェアは、ASPIモジュール(デバイスドライバまたはSCSIを直接サポートするアプリケーション)、SCSIホストアダプタ、およびホストアダプタに接続されたSCSIデバイス間のインターフェースを提供します。ASPIマネージャはホストアダプタとオペレーティングシステムに固有のものであり、その主な役割はホストアダプタの固有性を抽象化し、SCSIデバイスへの汎用ソフトウェアインターフェースを提供することです。[ 1 ] : 56
Windows 9xおよびWindows NTでは、ASPIマネージャは汎用であり、SCSIミニポートドライバのサービスに依存しています。これらのシステムでは、ASPIインターフェイスはSCSIパススルー機能を必要とするアプリケーション(CD-ROM書き込みソフトウェアなど)向けに設計されています。[ 1 ]: 57
ASPIがサポートする主な操作は、ホストアダプタと接続されたデバイスの検出、およびSRB(SCSIリクエストブロック)を介したデバイスへのSCSIコマンドの送信です。 [ 1 ]: 233 ASPIはSCSIコマンドの同時実行をサポートしています。[ 3 ]: 231
ASPI はAdaptecによって1989 年頃に開発され[ 4 ]、1990 年 1 月に正式に導入されました。当初はMS-DOSのみをサポートしていましたが[ 5 ]、 1991 年にNetWareのサポートが追加され、1992 年にOS/2とWindows 3.xのサポートが追加されました。 [ 4 ] [ 6 ]当初は SCSI デバイスのみ向けに開発されましたが、後にATAPIデバイスのサポートが追加されました。[ 7 ] : 772他のほとんどの SCSI ホストアダプタベンダー (たとえばBusLogic、DPT、AMI、Future Domain、DTC) は、ハードウェアに独自の ASPI マネージャを同梱していました。[ 8 ]
Adaptec社は、DOS用の汎用SCSIディスクおよびCD-ROMドライバ(ASPICD.SYSおよびASPIDISK.SYS)も開発した。[ 3 ]: 60-61
1990年代初頭には、SCSIデバイスドライバ用のプログラミングインターフェースとして、Appleが開発したCAM(Common Access Method)やMicrosoftが開発したLayered Device Driver Architectureなど、少なくとも2つがASPIと競合していた。しかし、ASPIはこの分野で競合するどのインターフェースよりも圧倒的に普及しており、PC Magazineは導入からわずか2年後に、ASPIをSCSIデバイスドライバ開発の事実上の標準と宣言した。 [ 9 ]
1995年から、マイクロソフトは自社のWindows 9xオペレーティングシステムで使用するためにこのインターフェースのライセンスを供与しました。同時に、マイクロソフトはNTプラットフォームで動作する社内代替品であるSCSIパススルーインターフェース(SPTI)を開発しました。マイクロソフトは、自社のSPTIを優先して、 Windows 2000 / XPにASPIを含めませんでした。[ 10 ]
DOS 上でUSBドライブをサポートするために、パナソニックはDOS のネイティブ USB サポートの欠如を回避するユニバーサル ASPI ドライバ ( USBASPI.SYS ) を開発しました。 [ 11 ]
ASPIドライバの例: