了解ASPI(Advanced SCSI Program Interface)驅動程式
xturtle 2001-08-15, 11:29 PM 偶覺得應該是這樣
Windows Platform=ASPI System
Non-Windows Platform(example: Unix-Like)=Another SCSI Control Command Cluster.
zodiac 2001-08-16, 02:56 AM 寫著寫著變成軟體討論了
其實一開始想要說明的是SCSI規格標準和ASPI毫無任何關係
包括 physical layer , protocol layer , command layer 主要是由T10負責制定,並且規格一直在變動中,例如 SCSI-1,SCSI-2,SCSI-3, 這些才和 SCSI 相容性有關
ASPI 如同前面所言,主要是在 Software layer 上,並且也不是標準 (事實上 CAM 才是標準,只是使用的廠商不多)
目前在不同的 OS 下所使用的 API 各有不同,ASPI 在 Windows 上比較流行 (netware,OS/2上也有),它提供程式設計師一個簡單的程式設計界面,使設計師在寫程式不必理會底層的複雜細節,只要 host adapter 製造廠提供自家的 ASPI Manager,利用 ASPI 寫出來的應用軟體即可執行,不過事實上不使用 ASPI 一樣也可以寫程式,例如在 NT 下可以用 SCSI Pass Through Interface (SPTI) 撰寫 AP (這個方法是微軟正式推薦的) xturtle 2001-08-16, 12:04 PM 其實DS大哥寫的沒錯
只是有些細節可能沒交代清楚
造成了一點誤會..:( zodiac 2001-08-16, 09:09 PM 這可不是誤會,是根本上的觀念錯誤,也許是在下表達能力不佳使各位無法了解在下發言的重點在那兒:
================================================================================
了解ASPI(Advanced SCSI Program Interface)驅動程式
.
最初SCSI剛出現時 ,那時候的SCSI卡與裝置,數量與種類都還沒那麼多,
SCSI卡大多是卡上建一組SCSI ROM驅動程式,使得開機能抓到的硬碟就算不錯了。
.
假如廠商要開發SCSI的裝置,大多數要自行開發驅動程式,透過DOS或其他OS來掛上去 ,才能讀取該組新添增的裝置,
要不然就算從SCSI卡上偵測到該裝置的名稱、編號與ID,也是無法存取的。
.
可是隨著SCSI裝置日漸增加,各廠家的SCSI卡陸續要設法支援這些新增的裝置,卻沒有一個軟體的共通規格,
必須針對一些較為「性格」的裝置不斷的修改;
而各SCSI週邊廠商在開發裝置、撰寫驅動程式時,
由於市面上有許多不同廠牌、不同類型的SCSI卡,每張SCSI卡對硬體的控制方式都不一樣,
支援實作的SCSI指令集也不見得相同,造成SCSI裝置要廣為支援SCSI卡時,也有許多的困難!
.
所以用戶會發現,有幾組SCSI裝置,會限定在哪家SCSI卡使用,才會運作正常;
有些裝置這家支援了,那家卻不支援,想要找一塊「一魚通吃」的SCSI卡,還真有些困難呢!
================================================================================
上面這段所描述雖然有些許瑕疵,不過SCSI裝置之間的相容性後來是由T10制定規格標準後得以解決,這中間和 ASPI 一點相關都沒有,也因此接下來的這段說明就成為錯誤
================================================================================
怎麼辦呢?由Adaptec、NCR以及相關SCSI介面卡、週邊裝置大廠,提出了
ASPI(Advanced SCSI Program Interface 先進SCSI程式介面)的概念,
從以往的
作業系統-->>裝置驅動程式-->>SCSI卡驅動程式-->>SCSI控制卡
這種控制流程做改變,
從裝置驅動程式與SCSI卡驅動程式中,架構一個「標準的軟體控制呼叫介面 。
.
在這種規劃下,SCSI週邊廠商 在開發週邊裝置,撰寫驅動程式時,
只要 (也必須)提供符合ASPI規格的驅動程式 ,不要需要直接跟SCSI驅動程式甚至跟SCSI控制卡打交道;
而SCSI卡廠商得將自己的SCSI卡驅動程式,轉化為提供ASPI介面層處理程式 ,
以及提供ASPI指令服務的管理系統 。
如此一來,只要新加入市場的週邊廠商,直接開發符合ASPI規格的驅動程式,
就能保證被SCSI卡抓到(當然這塊卡要支援ASPI);新的SCSI控制卡只要提供ASPI,
也能夠被既有的SCSI裝罝所認可
================================================================================
ASPI 原名是 Adaptec SCSI Programmig interface, 當初是 Adaptec 自行發展的產品,之後由於逐漸受到應用程式設計師大量採用使得其他 SCSI host adapter 製造廠商也跟進推出,它不是必備的模組,只有當應用軟體須要時才要安裝,OS 在運用 SCSI 裝置時並不須要用到,而且它是 SCSI host-mode programming interface, 只對 host adapter 作用,並不直接控制其它週邊 Greener 2001-08-17, 03:16 AM Zodiac兄說的沒錯,Technically
但ASPI 原名大部份人都翻成 Advanced SCSI Programmer's(or Programming) Interface
劣者將收集的幾篇英文文章和大家分享一下
希望有幫助
ASPI Driver Hell
Sorting out the ASPI driver mess
The ASPI drivers allow CDDA32 and DAT2WAV the ability to talk to the CDROM/DAT drives. Between Microsoft and Adaptec, the ASPI driver situation is completely screwed up. There are more versions of the ASPI32 drivers available than you can count. We will attempt to explain what versions you should use under what configurations.
The four files needed for WinNT are the following:
(example: WINNT is the WindowsNT home directory)
WINNT\SYSTEM\WINASPI.DLL
WINNT\SYSTEM\WOWPOST.EXE
WINNT\SYSTEM32\WNASPI32.DLL
WINNT\SYSTEM32\DRIVERS\ASPI32.SYS
The four files needed for Win95/98 are the following:
(example: WIN95 is the Windows95 home directory)
WIN95\SYSTEM\IOSUBSYS\APIX.VXD
WIN95\SYSTEM\WINASPI.DLL
WIN95\SYSTEM\WNASPI32.DLL
and ONE of the following two files
WIN95\SYSTEM\ASPIENUM.VXD (this is the file that comes from Adaptec)
WIN95\SYSTEM\ASPI2HLP.SYS (this is the file that comes with Win95)
To use SCSI devices under Win95/98
In order to use SCSI devices under Win95, you must have ASPI drivers installed. On a generic Win95/98 install, there will be ASPI drivers from Microsoft automatically installed for you.
If you have an Adaptec SCSI card and you don't have any ATAPI drives, it doesn't hurt to update the ASPI drivers for Win95/98 with the upgraded drivers from the Adaptec web site. WARNING: using these ASPI drivers to upgrade your machine will disable the ability of any software to talk to ATAPI drives. You can get the Adaptec drivers from : http://www.adaptec.com/support/files/upgrades.html
To use ATAPI drives under Win95/98
In order to use CDDA32 with ATAPI drives under Win95/98, you must have ASPI drivers installed. On a generic Win95/98 install, there will be ASPI drivers from Microsoft automatically installed for you. The ASPI drivers that Adaptec has on their web site now DO NOT allow CDDA32 to talk to ATAPI drives. If you update the Microsoft ASPI drivers with the drivers from Adaptec's site, you will lose the ability to use ATAPI drives with CDDA32.
Note: If you have already updated the drivers, you can replace the changed files with the ones from your Win95/98 install CD. (See list of necessary files above)
Some machines can talk to the drives using the old MSCDEX interface which is a mode that seems to work better on a small number of machines. It is almost impossible to guess which machines will and won't work other than checking the version number of a driver file: win/system/iosubsys/scsi1hlp.vxd If it is version 4.00.950 then it might work, but if it is a version like 4.00.1111 or higher then they cannot use the MSCDEX interface. We're told that you can download the 'good' driver from the following site: ftp://ftp.sony.com/ccpg/pc/scsi1hlp.exe or something close to that.
To Use ATAPI and SCSI drives under NT with SPTI
Starting with CDDA32 version 1.0, ASPI drivers are no longer neecessary for NT. Instead we are using the SPTI (SCSI Pass Through Drivers) which do not require the user to install any special drivers. CDDA32 should work just fine right out of the box.
To use ATAPI and SCSI drives under NT with ASPI
Even with the introduction of the SPTI drivers, you can still use the ASPI interface with NT. Microsoft doesn't ship any ASPI drivers with Windows NT, so you have no choice but to use Adaptec's ASPI drivers. The trouble is that the ones that they are shipping now do not directly support ATAPI drives, only the SCSI ones and their controllers. There is a workaround. You have to install either a very old version of the ASPI32 drivers, or a very new set of drivers. We have found a set of files on the net that have the latest ASPI drivers, but you will need to follow the directions included very carefully.
Step 1: get an older version of the ASPI drivers. You can find them below
or Step 1: get a new version of the ASPI drivers. You can find them below
Step 2: follow the directions included with the files to install the drivers
Step 3: once the drivers are installed, reboot, and then CDDA32 should now be able to see both the ATAPI and SCSI drives.
Hunting for ASPI Drivers
Either the original ASPI drivers installed with Win95/98 or the newest version of the ASPI drivers from Adaptec now support both ATAPI and SCSI drives. The install program from Adaptec checks an entry in the Registry before installing. If you don't have EZSCSI or an Adaptec SCSI card installed then these drivers won't install. In that case have a look at one of the files below that will install. Once the new drivers are installed on the machine, the driver checks for a specific registry entry during the boot up process. If the entry is there, then ATAPI access is allowed through the drivers. If the entry is not there then only SCSI access is allowed through the drivers.
The first thing to check is to make sure that you have a fully functional set of driver files. Adaptec has produced a tool called ASPICHK which will tell you all about the health and version numbers of the drivers on your system.
ftp://ftp.adaptec.com/pub/BBS/win95/aspichk.exe
The folks at grc.com had produced a program called ASPI_ME that would automatically install the latest version of the ASPI drivers under Windows95/98/NT and set up the appropriate registry entries to make sure the ATAPI drives work. However, Adaptec went after them because they were distributing copies of their drivers without permission. Have a look and see anyway:
http://www.grc.com/freestuff.htm
You can get also get a copy of recent ASPI drivers for Win95/98/NT from the Adaptec Japan web site. There are various flavours of versions.
http://www.adaptec.co.jp/download
The Adaptec upgrade ASPI drivers for Win95 and WinNT is called ASPI32.EXE, and the last time we checked, the URL was one of:
http://www.adaptec.com/support/files/upgrades.html
ftp://ftp.adaptec.com/pub/BBS/winnt
For NT users, you might try using the ASPI drivers from Symbios from their web site. These drivers will not work at all for Windows2000.
ntaspi.zip
ntaspi.exe
Advansys has their own NT aspi drivers, but we have had a lot of trouble with them.
http://www.advansys.com/support/ntwnaspi32.html
If you are still having trouble
Registry Settings
You may find that an important entry in your registry is not set correctly. The following entries need to be set if you are trying to use an ATAPI drive with a more recent version of the Adaptec ASPI drivers.
Registry Entry for Win95/98
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\APIX]
"ExcludeMiniports"=""
Registry Entries for WinNT 4.0
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ASPI32]
"ErrorControl"=dword:00000001
"Start"=dword:00000001
"Type"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ASPI32\Parameters]
"ExcludeMiniports"=""
Restoring the driver files from the original Win95/98 installation CD or disks
If all else fails you can restore the ASPI drivers to the files that came with your Win95/98 disks.Once you have extracted the files you can just copy them into the appropriate locations and reboot.
For Win95 here is an example:
extract /e d:\win95\win95_03.cab wnaspi32.dll
extract /e d:\win95\win95_03.cab winaspi.dll
extract /e d:\win95\win95_03.cab apix.vxd
extract /e d:\win95\win95_03.cab aspi2hlp.sys
For Win98 here is an example:
extract /e d:\win98\win98_40.cab wnaspi32.dll
extract /e d:\win98\win98_40.cab winaspi.dll
extract /e d:\win98\win98_47.cab apix.vxd
extract /e d:\win98\win98_46.cab aspi2hlp.sys Greener 2001-08-17, 03:27 AM Win2000 ASPI layer Installation
If you are here, it probably means that you are having trouble, or cannot install ASPI layers in Windows 2000.
I will try and provide you with a few hints and files that will make this job easier.
First of all you need to download some utilities
You need to get the newest ASPI Layers
Here (ftp://ftp.adaptec.com/software_pc/aspi/aspi32.exe)
. It's a file called aspi32.exe.
Also useful is a nifty Utility required to check the installed version of ASPI. You can get that
Here (ftp://ftp.adaptec.com/software_pc/aspi/aspichk.exe)
It's a file called aspichk.exe.
Also please take time to view Adaptec's DOWNLOADABLE SOFTWARE LICENSE .
Download Software License (http://www.adaptec.com/adaptec/legal/download.html)
Installation Instructions
Run the aspichk.exe and verify that you have some sort of aspi layer installed.
If none are found, You may download thisFile (http://www.winchan.net/aspi/aspidll.zip)
Unzip this file into your Winnt/system32 dir. (this will install an aspi layer that can be used for upgrade)
Run the aspichk.exe once more. It should verify that you have 1 or both files installed properly. If not, you didn't unzip into the right dir.
Now you may run the aspi32.exe file that you downloaded earlier. This will upgrade the ASPI layers to the latest build.
It should look like this (http://www.winchan.net/aspi/aspi.jpg) .
Reboot and enjoy.
This information is to help you only. I cant control the fact that you cant read if it doesn't work. So don't bitch at me. |