Source by Jens Rex
In trying to ensure that I had the perfect setup for ripping and encoding audio files, I became confused on the differences between ASPI (Advanced SCSI Programming Interface) and SPTI (SCSI Pass Through Interface). Many guides on using and setting up ExactAudioCopy stated bluntly to download and use an ASPI driver if you were using a Windows NT based system (NT/2000/XP). These guides failed, however, to say why I should. Using Windows 2000 at work and Windows XP at home, and having ripped many CDs without error, I wanted to know what was wrong with using SPTI. Not wanting to take some Joe Shmoe's word for it, I decided to investigate myself. Most of the answers to my questions were scattered across the internet, so I thought it proper to write my findings here. Hopefully this will help others who are confused.
ASPI was developed by Adaptec in the early 1990's. The purpose was to create a standard "layer", or set of device drivers, which applications could use to communicate with SCSI (Small Computer System Interface) bus based drives. This layer works at a very low level, to "talk" with the hardware directly. Thanks to some standardization in the way we access drives, the capabilities of the ASPI layer has been broadened to include other bus technologies, like IDE (Integrated Drive Electronics), ATAPI (AT Attachment Packet Interface) i.e. CD Burners, and SCSI-like i.e. parallel port. Missing a similar technology in their Operating System, Microsoft licensed the layer for use in their Windows OS, beginning with Windows 95.
With the birth of the CD-ROM burning market around 1995-96, Adaptec decided to change their licensing conditions. Namely, Adaptec asked for the kind of software and even for the name of the programs which would be distributed with the ASPI layer. Microsoft always had mixed feelings about the ASPI layer due its lack of security. With Adaptec's license change, they decided to write their own layer called SPTI, and do away with the ASPI layer. SPTI serves the same purpose as ASPI, in that it is used to communicate with the hardware at a low level. SPTI is also referred to as native Win32 or Windows NT/2000 calls, method, or interface in applications when setting up how the program will "talk" to the drive. Microsoft began including this in their NT based OS's (NT4, 2000, XP).
At some point a fight broke out between Adaptec and Microsoft over the licensing of ASPI, and Adaptec began to offer updates only to owners of Adaptec products. Advancements in the computer bus technologies left users of Windows 9x and ME with a very outdated ASPI layer.
Adaptec has since changed their policy, probably fearing they would lose their industry position, and currently offers their latest ASPI layer, version 4.7x, for almost all versions of Windows (98, Me, NT4, 2000 and XP). Windows 95 users are instructed to use the 4.60 version. To complicate matters, other companies, like Ahead Software, makers of the Nero Burning ROM application, offer their own ASPI layers.
So for SPTI enabled version of Windows (NT4, 2000, XP), you probably have the option of using either SPTI or ASPI (assuming you've installed an ASPI layer). Near as I can tell, the issue of which one to use, usually boils down to which layer the application supports. For instance EAC supports both, while Nero Burning ROM uses their own ASPI driver. I have yet to find documentation as to which layer offers an advantage over the other one. One site did state that little work was done on creating SPTI because the author of Adaptec's ASPI layer, Dan Polfer, did such a good job. I'll let you make your on conclusions on that statement.
I have seen many arguments surrounding the different versions of Adaptec's ASPI layer, including use of the 4.60 version in Windows NT based system and whether to keep updating the ASPI layer as new versions are introduced.
Adaptec's website states that the 4.60 version is not supported Windows ME, 2000 or XP. However, many users on the net have posted that they have experienced less problems using 4.60 versus 4.7x versions when installed in those OS's. The general consensus is that Adaptec's 4.60 build 1021 version is the most stable version available. The newer 4.7x versions seemed to have issues regarding reliability and stability.
Alternately you can use ASPI layers from other vendors, like Ahead's, which can be used independently of their recording software. RecDev is another example, whose ASPI layer supports external drives, such as USB and FireWire, but only works on Windows NT based system.
To re-iterate the Microsoft security concern with the ASPI layer, as a service under Windows NT, the layer allows all users direct access to the hardware without any rights attribution by an administrator. This is why, on NT based systems, after an ASPI layer is installed, ASPI access is limited to users with administrator rights. Of course, Microsoft recommends using SPTI.
Through my searches it has seems to me that if your application supports SPTI and works like you expect it to when using SPTI, continue to use it. If it only supports ASPI or using SPTI seems flaky, install Adaptec's 4.60 build 1021 version or a layer from one of the other vendors. Whether you use SPTI or ASPI, once you have a working configuration, it's NOT recommended to change. There haven't been any updates to the underlying technology, so unless you're experiencing a problem you risk breaking your configuration. And if you break your configuration, it can be hell trying to get it back in working order.
One last note is that Microsoft also created another drive access layer, called IOCTL (Input/Output Control). From what I can tell is that this doesn't access the hardware at the same level as the SPTI or ASPI layers. Instead this adds another layer, with the purpose of making the ASPI and/or SPTI layer even more generic and general. I don't believe DAE is possible with this layer, hence you don't hear much about when talking about ripping CDs.
ImgBurn without Administrative privileges
(works with XP SP3)
ASPI was developed by Adaptec in the early 1990's. The purpose was to create a standard "layer", or set of device drivers, which applications could use to communicate with SCSI (Small Computer System Interface) bus based drives. This layer works at a very low level, to "talk" with the hardware directly. Thanks to some standardization in the way we access drives, the capabilities of the ASPI layer has been broadened to include other bus technologies, like IDE (Integrated Drive Electronics), ATAPI (AT Attachment Packet Interface) i.e. CD Burners, and SCSI-like i.e. parallel port. Missing a similar technology in their Operating System, Microsoft licensed the layer for use in their Windows OS, beginning with Windows 95.
With the birth of the CD-ROM burning market around 1995-96, Adaptec decided to change their licensing conditions. Namely, Adaptec asked for the kind of software and even for the name of the programs which would be distributed with the ASPI layer. Microsoft always had mixed feelings about the ASPI layer due its lack of security. With Adaptec's license change, they decided to write their own layer called SPTI, and do away with the ASPI layer. SPTI serves the same purpose as ASPI, in that it is used to communicate with the hardware at a low level. SPTI is also referred to as native Win32 or Windows NT/2000 calls, method, or interface in applications when setting up how the program will "talk" to the drive. Microsoft began including this in their NT based OS's (NT4, 2000, XP).
At some point a fight broke out between Adaptec and Microsoft over the licensing of ASPI, and Adaptec began to offer updates only to owners of Adaptec products. Advancements in the computer bus technologies left users of Windows 9x and ME with a very outdated ASPI layer.
Adaptec has since changed their policy, probably fearing they would lose their industry position, and currently offers their latest ASPI layer, version 4.7x, for almost all versions of Windows (98, Me, NT4, 2000 and XP). Windows 95 users are instructed to use the 4.60 version. To complicate matters, other companies, like Ahead Software, makers of the Nero Burning ROM application, offer their own ASPI layers.
So for SPTI enabled version of Windows (NT4, 2000, XP), you probably have the option of using either SPTI or ASPI (assuming you've installed an ASPI layer). Near as I can tell, the issue of which one to use, usually boils down to which layer the application supports. For instance EAC supports both, while Nero Burning ROM uses their own ASPI driver. I have yet to find documentation as to which layer offers an advantage over the other one. One site did state that little work was done on creating SPTI because the author of Adaptec's ASPI layer, Dan Polfer, did such a good job. I'll let you make your on conclusions on that statement.
I have seen many arguments surrounding the different versions of Adaptec's ASPI layer, including use of the 4.60 version in Windows NT based system and whether to keep updating the ASPI layer as new versions are introduced.
Adaptec's website states that the 4.60 version is not supported Windows ME, 2000 or XP. However, many users on the net have posted that they have experienced less problems using 4.60 versus 4.7x versions when installed in those OS's. The general consensus is that Adaptec's 4.60 build 1021 version is the most stable version available. The newer 4.7x versions seemed to have issues regarding reliability and stability.
Alternately you can use ASPI layers from other vendors, like Ahead's, which can be used independently of their recording software. RecDev is another example, whose ASPI layer supports external drives, such as USB and FireWire, but only works on Windows NT based system.
To re-iterate the Microsoft security concern with the ASPI layer, as a service under Windows NT, the layer allows all users direct access to the hardware without any rights attribution by an administrator. This is why, on NT based systems, after an ASPI layer is installed, ASPI access is limited to users with administrator rights. Of course, Microsoft recommends using SPTI.
Through my searches it has seems to me that if your application supports SPTI and works like you expect it to when using SPTI, continue to use it. If it only supports ASPI or using SPTI seems flaky, install Adaptec's 4.60 build 1021 version or a layer from one of the other vendors. Whether you use SPTI or ASPI, once you have a working configuration, it's NOT recommended to change. There haven't been any updates to the underlying technology, so unless you're experiencing a problem you risk breaking your configuration. And if you break your configuration, it can be hell trying to get it back in working order.
One last note is that Microsoft also created another drive access layer, called IOCTL (Input/Output Control). From what I can tell is that this doesn't access the hardware at the same level as the SPTI or ASPI layers. Instead this adds another layer, with the purpose of making the ASPI and/or SPTI layer even more generic and general. I don't believe DAE is possible with this layer, hence you don't hear much about when talking about ripping CDs.
ImgBurn without Administrative privileges
(works with XP SP3)
No comments:
Post a Comment