When a request is issued, the CD-ROM Device Manager will set the IORB_REQ_STATUSBLOCK bit in the RequestControl field of the IORB header. If this bit is set and an error occurs, the Adapter Device Driver must return a valid status block and a valid sense data block back to the Device Manager when the request completes.

The status block is pointed to by the pStatusBlock field in the IORB header. It should be noted that pStatusBlock is a 16 bit near pointer, so the block is within the same segment as the IORB. The sense data is pointed to by the SenseData field in the status block. This field is a 16:16 far pointer. The length of the sense data to return is in specified in the ReqSenseLen field.

The adapter device driver must set the following fields when returning sense data:

To maintain consistency with the adapter device driver specification, an IORB error code must also be returned in the IORB header when an error occurs. This is in addition to the returned sense data information. The table below shows the mapping between Sense Data error codes and IORB error codes. If the Adapter Device Driver returns Sense Key and Sense Codes listed in the SCSI-2 specification which are not listed in the table below, the adapter device driver must map the sense key and codes to the most appropriate IORB error code.

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Key  = Sense Key
  ASC  = Additional Sense Code
  ASCQ = Additional Sense Code Qualifier
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³          ³           ³Description               ³IORB Error Code               ³
³          ³Key ASC    ³                          ³                              ³
³          ³ASCQ       ³                          ³                              ³
ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³          ³           ³                          ³                              ³
³NOT READY ³02h 04h 00h³Logical Unit Not Ready    ³IOERR_UNIT_NOT_READY          ³
³          ³02h 04h 01h³Becoming ready            ³IOERR_UNIT_NOT_READY          ³
³          ³02h 57h 00h³Unable to recover TOC     ³IOERR_UNIT_NOT_READY          ³
ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³          ³           ³                          ³                              ³
³MEDIUM    ³03h 02h 00h³No Seek Complete          ³IOERR_RBA_ADDRESSING_ERROR    ³
³ERROR     ³03h 11h 00h³Unrecovered Read Error    ³IOERR_RBA_CRC_ERROR           ³
³          ³03h 11h 05h³L-EC Uncorrectable Error  ³IOERR_RBA_CRC_ERROR           ³
³          ³03h 11h 06h³CIRC Unrecovered Error    ³IOERR_RBA_CRC_ERROR           ³
³          ³03h 12h 00h³Address Mark Not Found    ³IOERR_RBA_ADDRESSING_ERROR    ³
³          ³03h 15h 00h³Random Positioning Error  ³IOERR_RBA_ADDRESSING_ERROR    ³
³          ³03h 16h 00h³Data Synchronization Error³IOERR_RBA_CRC_ERROR           ³
³          ³03h 30h 00h³Incompatible Medium       ³IOERR_MEDIA_NOT_SUPPORTED     ³
ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³          ³           ³                          ³                              ³
³HARDWARE  ³04h 08h 00h³Unit Communication Fail   ³IOERR_DEVICE_NONSPECIFIC      ³
³ERROR     ³04h 09h 01h³Tracking Servo Failure    ³IOERR_DEVICE_NONSPECIFIC      ³
³          ³04h 09h 02h³Focus Servo Failure       ³IOERR_DEVICE_NONSPECIFIC      ³
³          ³04h 09h 03h³Spindle Servo Failure     ³IOERR_DEVICE_NONSPECIFIC      ³
³          ³04h 44h 00h³Internal Target Failure   ³IOERR_DEVICE_NONSPECIFIC      ³
ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³          ³           ³                          ³                              ³
³ILLEGAL   ³05h 20h 00h³Invalid Command Code      ³IOERR_DEVICE_REQ_NOT_SUPPORTED³
³REQUEST   ³05h 21h 00h³LBA Out of Range          ³IOERR_RBA_ADDRESSING_ERROR    ³
³          ³05h 24h 00h³Invalid field in CDB      ³IOERR_CMD_SYNTAX              ³
³          ³05h 25h 00h³Unit not supported        ³IOERR_CMD_SYNTAX              ³
³          ³05h 26h 00h³Invalid field in parmlist ³IOERR_CMD_SYNTAX              ³
³          ³05h 63h 00h³End of user area          ³IOERR_RBA_ADDRESSING_ERROR    ³
³          ³05h 64h 00h³Illegal mode for track    ³IOERR_RBA_ADDRESSING_ERROR    ³
ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³          ³           ³Medium may have changed   ³                              ³
³UNIT      ³06h 28h 00h³Power on reset            ³IOERR_MEDIA_CHANGED           ³
³ATTENTION ³06h 29h 00h³                          ³IOERR_DEVICE_RESET            ³
ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³          ³08h 64h 00h³Illegal mode for track    ³IOERR_RBA_ADDRESSING_ERROR    ³
³BLANK     ³           ³                          ³                              ³
³CHECK     ³           ³                          ³                              ³
ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


[Back: Multi-Session Photo CD Support]
[Next: CD-ROM Device Driver Test Tool]