An InterpretRequestSense routine interprets the data returned in the SrbSenseInfoBuffer, determines whether the request should be retried, and, if not, maps the error to an NTSTATUS value for the IRP’s I/O status block.
The system port driver indicates whether request-sense information is available by setting the SrbStatus member with SRB_STATUS_AUTOSENSE_VALID or SRB_STATUS_REQUEST_SENSE_FAILED.
If no request-sense information is available, InterpretRequestSense should check the SrbStatus value to determine whether to retry a given request or to determine an appropriate mapping to an NTSTATUS value.
The InterpretRequestSense routine might call a driver-supplied error-logging routine, as well. Whenever a SCSI class driver logs an I/O error, it should include the PathId, TargetId, Lun, and SrbStatus values from the SRB, and, if possible, pertinent request-sense information as part of the error log entry’s DumpData.
For more information about logging I/O errors, see Chapter 16.