Important: The information in this document is obsolete and should not be used for new development.
SCSIReleaseQ
You use theSCSIReleaseQ
function to release a frozen queue for a LUN.
OSErr SCSIAction(SCSI_PB *scsiPB);
scsiPB
- A pointer to a SCSI Manager parameter block.
--> scsiPBLength UInt16 The size of the parameter block. --> scsiFunctionCode UInt8 The SCSIReleaseQ
function selector code (0x04).<-- scsiResult OSErr The returned result code. --> scsiDevice DeviceIdent The device identification record. --> scsiCompletion CallbackProc Unused. Must be set to nil
.DESCRIPTION
TheSCSIReleaseQ
function releases a frozen I/O queue for the logical unit number specified in thescsiDevice
field. If an I/O request returns with thescsiSIMQFrozen
flag set in thescsiResultFlags
field, you must call this function to restore normal operation.Queue freezing provides the opportunity to insert error-handling requests at the beginning of the queue using the
scsiSIMQHead
flag. You then release the queue using this function. Subsequent errors will continue to freeze the queue, allowing you to step through the queue one request at a time without aborting any other pending requests.Because this function is always executed synchronously, the
scsiCompletion
field must be set tonil
. Unlike other synchronous functions, however, you can callSCSIReleaseQ
from a completion routine.RESULT CODES
noErr 0 No error scsiIDInvalid -7866 The initiator ID is invalid scsiLUNInvalid -7867 The logical unit number is invalid scsiTIDInvalid -7868 The target ID is invalid scsiBusInvalid -7869 The bus ID is invalid scsiRequestInvalid -7870 The parameter block request is invalid scsiPBLengthError -7872 The parameter block is too small for this SIM scsiQLinkInvalid -7881 The qLink
field was not 0SEE ALSO
See "Error Recovery Techniques" on page 4-10 for more information about queue freezing.