SCSITask.h describes the task status returned from ExecuteTaskSync()
as follows:
/*
* The Task Status represents the completion status of the task which
provides the
* SCSI Application Layer with additional information about how to procede in
* handling a completed task.
*
* The SCSI Architecture Model specification only defines task status
values for when
* a task completes with a service response of either TASK_COMPLETED
or LINK_COMMAND_COMPLETE.
* Since additional information will aid in error recovery when a
task fails to be completed
* by a device due to a service response of
kSCSIServiceResponse_SERVICE_DELIVERY_OR_TARGET_FAILURE,
* additional values have been defined that can be returned by the
SCSI Protocol Layer to inform
* the SCSI Application Layer of the cause of the delivery failure.
...
*/
One of these additional values is
kSCSITaskStatus_No_Status = 0xFF
which is described as
/* This status is not defined by the SCSI specifications,
* but is here to provide a status that can be returned in
* cases where there is not status available from the device
* or protocol, for example, when the service response is neither
* TASK_COMPLETED nor LINK_COMMAND_COMPLETE or when the service response is
* SERVICE_DELIVERY_OR_TARGET_FAILURE and the reason for failure could
not be determined.
*/
How to proceed in the application layer if this "no" status is
returned from the protocol layer?
Is this a recoverable error?
Is it safe to call the SCSI task again, e.g. a write command?
Does this indicate a SCSI protocol error, a hardware failure, anything else?
How to prepare the application layer to avoid this status?
Any clarification is greatly appreciated. Thanks.
Uwe
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Ata-scsi-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden