The port-miniport driver pair is responsible for retrying requests if certain SCSI errors occur, including bus parity errors, selection time-outs, and target controller busy errors. If their retry attempts fail, the Windows NT SCSI port driver completes the request with an appropriate error and logs the I/O error, as well.
SCSI class drivers should never attempt to retry a request that the port driver has already failed due to any of the preceding errors.
SCSI class drivers are required to retry requests that fail due to target controller errors, SCSI bus resets, or time-outs. In general, a RetryRequest routine can resubmit such an IRP to the port driver and direct that the SRB be placed at the head of the port driver’s LU-specific queue.
In particular, a RetryRequest routine should do the following: