Is ASPI dead? I don't think so!

Daniel Polfer polfer at
Tue Feb 4 10:45:37 PST 1997

* From the SCSI Reflector (scsi at, posted by:
* polfer at (Daniel Polfer)
Hey Jeff,

>>You can't do an Escape cancel because there is no way for ASPI to
>>reliably tell the IOS/SCSIPORT to kill an I/O packet which has already
>>hit a host adapter.  We're dealing with many host adapters, and a good
>>many won't allow this kind of operation.  Based on this, the O/S
>>doesn't do it, and therefore we don't.  I definitely agree with you
>>that this is tragic.  I also think it is sad that I can't force either
>>a bus or a bus-device reset, but there isn't much I can do to fix the
>>problem because there is no O/S support.
>Isn't  Abort I/O (SRB command (byte 0) =3D 3)  used to kill an I/O =

SRB_FUNCTION_ABORT_COMMAND is actually what ASPI sends down when you
do an abort.  The command did not ever really work on 95/NT the way
you would think (particularly when the SRB has reached physical
hardware).  Based on this we recommend that the ASPI command NOT be
used.  There is also a SRB_FUNCTION_RESET_DEVICE which also behaves
erractically (or not at all).  The use of timeouts just plain works a
lot better, and accomplishes just what you think it would.

>>Why don't you call GetASPI32SupportInfo (or its equivalent)?  It
>>literally takes two more lines of code, and then you'll *KNOW* the
>>host adapter count.  Aside from this, you can do what you indicated
>I think that "Host Adapter Inquiry" (SRB command  =3D 0) is used
>to get the number of host adapters, and that "Get Device Type"
>(SRB command =3D1) can be used to check for the "presence" of
>a device at a specified target ID. Use multiple "Get Device Type"
>commands to "scan" for devices.

You can indeed get the host adapter count from a host adapter inquiry,
and you can also get the device type of a target to check for its
presence in a scan (it is actually recommended to speed the scan).
However, GetASPI32SupportInfo is the correct place to check the host
adapter count because this call should be made before you make any
other calls to ensure ASPI is initialized.  Once you make this check,
you can do whatever you want with the resulting information.  This
includes ignoring the HA count and using an additional host adapter
inquiry to get the information.

Dan Polfer
Team Adaptec
* For SCSI Reflector information, send a message with
* 'info scsi' (no quotes) in the message body to majordomo at

More information about the T10 mailing list