ChangerError function (mcd.h)
ChangerError performs device-specific error handling.
Syntax
void ChangerError(
PDEVICE_OBJECT DeviceObject,
PSCSI_REQUEST_BLOCK Srb,
NTSTATUS *Status,
BOOLEAN *Retry
);
Parameters
DeviceObject
Pointer to the device object that represents the changer.
Srb
Pointer to the SCSI request block for the operation that failed.
Status
Specifies the address of the STATUS_XXX code set by the system. The changer miniclass driver can change the status or leave it as is.
Retry
Pointer to a flag that indicates whether to retry the request. The changer miniclass driver can set this flag or leave it as is.
Return value
None
Remarks
This routine is required.
If an SRB fails with a SCSI status of CHECK CONDITION, the SCSI class driver calls the changer class driver's ChangerClassError routine. ChangerClassError performs device-independent error handling and calls the changer miniclass driver's ChangerError routine.
ChangerError first checks Srb->SrbStatus with SRB_STATUS_AUTOSENSE_VALID to make sure the sense data buffer is valid. If so, it checks the sense data in Srb->SenseInfoBuffer to determine whether to update *Status with a more accurate STATUS_XXX code and/or set the Retry flag before returning to the changer class driver. The changer class driver's retry count determines whether the SRB is actually retried.
Requirements
Requirement | Value |
---|---|
Target Platform | Desktop |
Header | mcd.h (include Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |