#[derive(Debug)]
pub enum SenseKey {
Ok = 0,
Recovered = 1,
NotReady = 2,
MediumError = 3,
HardwareError = 4,
IllegalRequest = 5,
UnitAttention = 6,
DataProtect = 7,
BlankCheck = 8,
VendorSpecific = 9,
AbortedCopy = 10,
AbortedCommand = 11,
Reserved = 12,
VolumeOverflow = 13,
Miscompare = 14,
Completed = 15,
}
impl SenseKey {
pub fn from(key: u8) -> SenseKey {
use self::SenseKey::*;
match key {
0 => Ok,
1 => Recovered,
2 => NotReady,
3 => MediumError,
4 => HardwareError,
5 => IllegalRequest,
6 => UnitAttention,
7 => DataProtect,
8 => BlankCheck,
9 => VendorSpecific,
10 => AbortedCopy,
11 => AbortedCommand,
12 => Reserved,
13 => VolumeOverflow,
14 => Miscompare,
15 => Completed,
_ => panic!("invalid sense key value"),
}
}
}
pub fn decode_asc(asc: u8, ascq: u8) -> Option<&'static str> {
Some(match (asc, ascq) {
(0x20, 0x0B) => "ACCESS DENIED - ACL LUN CONFLICT",
(0x20, 0x08) => "ACCESS DENIED - ENROLLMENT CONFLICT",
(0x20, 0x01) => "ACCESS DENIED - INITIATOR PENDING-ENROLLED",
(0x20, 0x09) => "ACCESS DENIED - INVALID LU IDENTIFIER",
(0x20, 0x03) => "ACCESS DENIED - INVALID MGMT ID KEY",
(0x20, 0x0A) => "ACCESS DENIED - INVALID PROXY TOKEN",
(0x20, 0x02) => "ACCESS DENIED - NO ACCESS RIGHTS",
(0x4B, 0x03) => "ACK/NAK TIMEOUT",
(0x67, 0x02) => "ADD LOGICAL UNIT FAILED",
(0x13, 0x00) => "ADDRESS MARK NOT FOUND FOR DATA FIELD",
(0x12, 0x00) => "ADDRESS MARK NOT FOUND FOR ID FIELD",
(0x67, 0x08) => "ASSIGN FAILURE OCCURRED",
(0x27, 0x03) => "ASSOCIATED WRITE PROTECT",
(0x2A, 0x06) => "ASYMMETRIC ACCESS STATE CHANGED",
(0x47, 0x04) => "ASYNCHRONOUS INFORMATION PROTECTION ERROR DETECTED",
(0x44, 0x71) => "ATA DEVICE FAILED SET FEATURES",
(0x67, 0x0B) => "ATA DEVICE FEATURE NOT ENABLED",
(0x00, 0x1D) => "ATA PASS THROUGH INFORMATION AVAILABLE",
(0x67, 0x06) => "ATTACHMENT OF LOGICAL UNIT FAILED",
(0x00, 0x11) => "AUDIO PLAY OPERATION IN PROGRESS",
(0x00, 0x12) => "AUDIO PLAY OPERATION PAUSED",
(0x00, 0x14) => "AUDIO PLAY OPERATION STOPPED DUE TO ERROR",
(0x00, 0x13) => "AUDIO PLAY OPERATION SUCCESSFULLY COMPLETED",
(0x74, 0x40) => "AUTHENTICATION FAILED",
(0x66, 0x00) => "AUTOMATIC DOCUMENT FEEDER COVER UP",
(0x66, 0x01) => "AUTOMATIC DOCUMENT FEEDER LIFT UP",
(0x55, 0x06) => "AUXILIARY MEMORY OUT OF SPACE",
(0x11, 0x12) => "AUXILIARY MEMORY READ ERROR",
(0x0C, 0x0B) => "AUXILIARY MEMORY WRITE ERROR",
(0x00, 0x04) => "BEGINNING-OF-PARTITION/MEDIUM DETECTED",
(0x0C, 0x06) => "BLOCK NOT COMPRESSIBLE",
(0x14, 0x04) => "BLOCK SEQUENCE ERROR",
(0x29, 0x03) => "BUS DEVICE RESET FUNCTION OCCURRED",
(0x11, 0x0E) => "CANNOT DECOMPRESS USING DECLARED ALGORITHM",
(0x30, 0x06) => "CANNOT FORMAT MEDIUM - INCOMPATIBLE MEDIUM",
(0x30, 0x02) => "CANNOT READ MEDIUM - INCOMPATIBLE FORMAT",
(0x30, 0x01) => "CANNOT READ MEDIUM - UNKNOWN FORMAT",
(0x30, 0x08) => "CANNOT WRITE - APPLICATION CODE MISMATCH",
(0x30, 0x05) => "CANNOT WRITE MEDIUM - INCOMPATIBLE FORMAT",
(0x30, 0x04) => "CANNOT WRITE MEDIUM - UNKNOWN FORMAT",
(0x2A, 0x09) => "CAPACITY DATA HAS CHANGED",
(0x52, 0x00) => "CARTRIDGE FAULT",
(0x73, 0x00) => "CD CONTROL ERROR",
(0x24, 0x01) => "CDB DECRYPTION ERROR",
(0x3F, 0x02) => "CHANGED OPERATING DEFINITION",
(0x11, 0x06) => "CIRC UNRECOVERED ERROR",
(0x30, 0x03) => "CLEANING CARTRIDGE INSTALLED",
(0x30, 0x07) => "CLEANING FAILURE",
(0x30, 0x0A) => "CLEANING REQUEST REJECTED",
(0x00, 0x17) => "CLEANING REQUESTED",
(0x30, 0x13) => "CLEANING VOLUME EXPIRED",
(0x4A, 0x00) => "COMMAND PHASE ERROR",
(0x2C, 0x00) => "COMMAND SEQUENCE ERROR",
(0x6E, 0x00) => "COMMAND TO LOGICAL UNIT FAILED",
(0x2F, 0x00) => "COMMANDS CLEARED BY ANOTHER INITIATOR",
(0x2F, 0x02) => "COMMANDS CLEARED BY DEVICE SERVER",
(0x2F, 0x01) => "COMMANDS CLEARED BY POWER LOSS NOTIFICATION",
(0x3F, 0x04) => "COMPONENT DEVICE ATTACHED",
(0x0C, 0x04) => "COMPRESSION CHECK MISCOMPARE ERROR",
(0x27, 0x06) => "CONDITIONAL WRITE PROTECT",
(0x67, 0x00) => "CONFIGURATION FAILURE",
(0x67, 0x01) => "CONFIGURATION OF INCAPABLE LOGICAL UNITS FAILED",
(0x6F, 0x07) => "CONFLICT IN BINDING NONCE RECORDING",
(0x00, 0x1E) => "CONFLICTING SA CREATION REQUEST",
(0x4B, 0x07) => "CONNECTION LOST",
(0x5D, 0x25) => "CONTROLLER IMPENDING FAILURE ACCESS TIMES TOO HIGH",
(0x5D, 0x27) => "CONTROLLER IMPENDING FAILURE CHANNEL PARAMETRICS",
(0x5D, 0x28) => "CONTROLLER IMPENDING FAILURE CONTROLLER DETECTED",
(0x5D, 0x22) => "CONTROLLER IMPENDING FAILURE DATA ERROR RATE TOO HIGH",
(0x5D, 0x2C) => "CONTROLLER IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT",
(0x5D, 0x21) => "CONTROLLER IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH",
(0x5D, 0x20) => "CONTROLLER IMPENDING FAILURE GENERAL HARD DRIVE FAILURE",
(0x5D, 0x23) => "CONTROLLER IMPENDING FAILURE SEEK ERROR RATE TOO HIGH",
(0x5D, 0x2A) => "CONTROLLER IMPENDING FAILURE SEEK TIME PERFORMANCE",
(0x5D, 0x2B) => "CONTROLLER IMPENDING FAILURE SPIN-UP RETRY COUNT",
(0x5D, 0x26) => "CONTROLLER IMPENDING FAILURE START UNIT TIMES TOO HIGH",
(0x5D, 0x29) => "CONTROLLER IMPENDING FAILURE THROUGHPUT PERFORMANCE",
(0x5D, 0x24) => "CONTROLLER IMPENDING FAILURE TOO MANY BLOCK REASSIGNS",
(0x2B, 0x00) => "COPY CANNOT EXECUTE SINCE HOST CANNOT DISCONNECT",
(0x6F, 0x00) => "COPY PROTECTION KEY EXCHANGE FAILURE - AUTHENTICATION FAILURE",
(0x6F, 0x02) => "COPY PROTECTION KEY EXCHANGE FAILURE - KEY NOT ESTABLISHED",
(0x6F, 0x01) => "COPY PROTECTION KEY EXCHANGE FAILURE - KEY NOT PRESENT",
(0x26, 0x0D) => "COPY SEGMENT GRANULARITY VIOLATION",
(0x0D, 0x05) => "COPY TARGET DEVICE DATA OVERRUN",
(0x0D, 0x04) => "COPY TARGET DEVICE DATA UNDERRUN",
(0x0D, 0x02) => "COPY TARGET DEVICE NOT REACHABLE",
(0x67, 0x07) => "CREATION OF LOGICAL UNIT FAILED",
(0x74, 0x04) => "CRYPTOGRAPHIC INTEGRITY VALIDATION FAILED",
(0x73, 0x10) => "CURRENT POWER CALIBRATION AREA ALMOST FULL",
(0x73, 0x11) => "CURRENT POWER CALIBRATION AREA IS FULL",
(0x2C, 0x04) => "CURRENT PROGRAM AREA IS EMPTY",
(0x2C, 0x03) => "CURRENT PROGRAM AREA IS NOT EMPTY",
(0x30, 0x09) => "CURRENT SESSION NOT FIXATED FOR APPEND",
(0x5D, 0x35) => "DATA CHANNEL IMPENDING FAILURE ACCESS TIMES TOO HIGH",
(0x5D, 0x37) => "DATA CHANNEL IMPENDING FAILURE CHANNEL PARAMETRICS",
(0x5D, 0x38) => "DATA CHANNEL IMPENDING FAILURE CONTROLLER DETECTED",
(0x5D, 0x32) => "DATA CHANNEL IMPENDING FAILURE DATA ERROR RATE TOO HIGH",
(0x5D, 0x3C) => "DATA CHANNEL IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT",
(0x5D, 0x31) => "DATA CHANNEL IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH",
(0x5D, 0x30) => "DATA CHANNEL IMPENDING FAILURE GENERAL HARD DRIVE FAILURE",
(0x5D, 0x33) => "DATA CHANNEL IMPENDING FAILURE SEEK ERROR RATE TOO HIGH",
(0x5D, 0x3A) => "DATA CHANNEL IMPENDING FAILURE SEEK TIME PERFORMANCE",
(0x5D, 0x3B) => "DATA CHANNEL IMPENDING FAILURE SPIN-UP RETRY COUNT",
(0x5D, 0x36) => "DATA CHANNEL IMPENDING FAILURE START UNIT TIMES TOO HIGH",
(0x5D, 0x39) => "DATA CHANNEL IMPENDING FAILURE THROUGHPUT PERFORMANCE",
(0x5D, 0x34) => "DATA CHANNEL IMPENDING FAILURE TOO MANY BLOCK REASSIGNS",
(0x55, 0x0A) => "DATA CURRENTLY UNAVAILABLE",
(0x26, 0x05) => "DATA DECRYPTION ERROR",
(0x26, 0x10) => "DATA DECRYPTION KEY FAIL LIMIT REACHED",
(0x2A, 0x0D) => "DATA ENCRYPTION CAPABILITIES CHANGED",
(0x74, 0x21) => "DATA ENCRYPTION CONFIGURATION PREVENTED",
(0x2A, 0x13) => "DATA ENCRYPTION KEY INSTANCE COUNTER HAS CHANGED",
(0x2A, 0x11) => "DATA ENCRYPTION PARAMETERS CHANGED BY ANOTHER I_T NEXUS",
(0x2A, 0x12) => "DATA ENCRYPTION PARAMETERS CHANGED BY VENDOR SPECIFIC EVENT",
(0x0C, 0x05) => "DATA EXPANSION OCCURRED DURING COMPRESSION",
(0x69, 0x00) => "DATA LOSS ON LOGICAL UNIT",
(0x4B, 0x05) => "DATA OFFSET ERROR",
(0x41, 0x00) => "DATA PATH FAILURE (SHOULD USE 40 NN)",
(0x47, 0x01) => "DATA PHASE CRC ERROR DETECTED",
(0x4B, 0x00) => "DATA PHASE ERROR",
(0x11, 0x07) => "DATA RE-SYNCHRONIZATION ERROR",
(0x16, 0x03) => "DATA SYNC ERROR - DATA AUTO-REALLOCATED",
(0x16, 0x01) => "DATA SYNC ERROR - DATA REWRITTEN",
(0x16, 0x04) => "DATA SYNC ERROR - RECOMMEND REASSIGNMENT",
(0x16, 0x02) => "DATA SYNC ERROR - RECOMMEND REWRITE",
(0x16, 0x00) => "DATA SYNCHRONIZATION MARK ERROR",
(0x3B, 0x1B) => "DATA TRANSFER DEVICE INSERTED",
(0x3B, 0x1A) => "DATA TRANSFER DEVICE REMOVED",
(0x11, 0x0D) => "DE-COMPRESSION CRC ERROR",
(0x71, 0x00) => "DECOMPRESSION EXCEPTION LONG ALGORITHM ID",
(0x70, _) => "DECOMPRESSION EXCEPTION SHORT ALGORITHM ID", (0x19, 0x00) => "DEFECT LIST ERROR",
(0x19, 0x03) => "DEFECT LIST ERROR IN GROWN LIST",
(0x19, 0x02) => "DEFECT LIST ERROR IN PRIMARY LIST",
(0x19, 0x01) => "DEFECT LIST NOT AVAILABLE",
(0x1C, 0x00) => "DEFECT LIST NOT FOUND",
(0x32, 0x01) => "DEFECT LIST UPDATE FAILURE",
(0x0C, 0x0F) => "DEFECTS IN ERROR WINDOW",
(0x3F, 0x05) => "DEVICE IDENTIFIER CHANGED",
(0x29, 0x04) => "DEVICE INTERNAL RESET",
(0x40, x) if x >= 0x80 => "DIAGNOSTIC FAILURE ON COMPONENT", (0x74, 0x08) => "DIGITAL SIGNATURE VALIDATION FAILURE",
(0x66, 0x02) => "DOCUMENT JAM IN AUTOMATIC DOCUMENT FEEDER",
(0x66, 0x03) => "DOCUMENT MISS FEED AUTOMATIC IN DOCUMENT FEEDER",
(0x6F, 0x05) => "DRIVE REGION MUST BE PERMANENT/REGION RESET COUNT ERROR",
(0x53, 0x07) => "DUPLICATE VOLUME IDENTIFIER",
(0x3F, 0x0F) => "ECHO BUFFER OVERWRITTEN",
(0x3B, 0x18) => "ELEMENT DISABLED",
(0x3B, 0x19) => "ELEMENT ENABLED",
(0x53, 0x08) => "ELEMENT STATUS UNKNOWN",
(0x72, 0x04) => "EMPTY OR PARTIALLY WRITTEN RESERVED TRACK",
(0x34, 0x00) => "ENCLOSURE FAILURE",
(0x35, 0x05) => "ENCLOSURE SERVICES CHECKSUM ERROR",
(0x35, 0x00) => "ENCLOSURE SERVICES FAILURE",
(0x35, 0x03) => "ENCLOSURE SERVICES TRANSFER FAILURE",
(0x35, 0x04) => "ENCLOSURE SERVICES TRANSFER REFUSED",
(0x35, 0x02) => "ENCLOSURE SERVICES UNAVAILABLE",
(0x74, 0x0A) => "ENCRYPTED BLOCK NOT RAW READ ENABLED",
(0x74, 0x0D) => "ENCRYPTION ALGORITHM DISABLED",
(0x74, 0x09) => "ENCRYPTION MODE MISMATCH ON READ",
(0x74, 0x07) => "ENCRYPTION PARAMETERS NOT USEABLE",
(0x3B, 0x0F) => "END OF MEDIUM REACHED",
(0x63, 0x00) => "END OF USER AREA ENCOUNTERED ON THIS TRACK",
(0x00, 0x05) => "END-OF-DATA DETECTED",
(0x14, 0x03) => "END-OF-DATA NOT FOUND",
(0x00, 0x02) => "END-OF-PARTITION/MEDIUM DETECTED",
(0x51, 0x00) => "ERASE FAILURE",
(0x51, 0x01) => "ERASE FAILURE - INCOMPLETE ERASE OPERATION DETECTED",
(0x00, 0x18) => "ERASE OPERATION IN PROGRESS",
(0x74, 0x05) => "ERROR DECRYPTING DATA",
(0x0D, 0x00) => "ERROR DETECTED BY THIRD PARTY TEMPORARY INITIATOR",
(0x2A, 0x0A) => "ERROR HISTORY I_T NEXUS CLEARED",
(0x2A, 0x0B) => "ERROR HISTORY SNAPSHOT RELEASED",
(0x0A, 0x00) => "ERROR LOG OVERFLOW",
(0x11, 0x10) => "ERROR READING ISRC NUMBER",
(0x11, 0x0F) => "ERROR READING UPC/EAN NUMBER",
(0x2A, 0x0C) => "ERROR RECOVERY ATTRIBUTES HAVE CHANGED",
(0x11, 0x02) => "ERROR TOO LONG TO CORRECT",
(0x38, 0x06) => "ESN - DEVICE BUSY CLASS EVENT",
(0x38, 0x04) => "ESN - MEDIA CLASS EVENT",
(0x38, 0x02) => "ESN - POWER MANAGEMENT CLASS EVENT",
(0x38, 0x00) => "EVENT STATUS NOTIFICATION",
(0x03, 0x02) => "EXCESSIVE WRITE ERRORS",
(0x67, 0x04) => "EXCHANGE OF LOGICAL UNIT FAILED",
(0x74, 0x6F) => "EXTERNAL DATA ENCRYPTION CONTROL ERROR",
(0x74, 0x6E) => "EXTERNAL DATA ENCRYPTION CONTROL TIMEOUT",
(0x74, 0x61) => "EXTERNAL DATA ENCRYPTION KEY MANAGER ACCESS ERROR",
(0x74, 0x62) => "EXTERNAL DATA ENCRYPTION KEY MANAGER ERROR",
(0x74, 0x63) => "EXTERNAL DATA ENCRYPTION KEY NOT FOUND",
(0x74, 0x64) => "EXTERNAL DATA ENCRYPTION REQUEST NOT AUTHORIZED",
(0x3B, 0x07) => "FAILED TO SENSE BOTTOM-OF-FORM",
(0x3B, 0x06) => "FAILED TO SENSE TOP-OF-FORM",
(0x5D, 0x00) => "FAILURE PREDICTION THRESHOLD EXCEEDED",
(0x5D, 0xFF) => "FAILURE PREDICTION THRESHOLD EXCEEDED (FALSE)",
(0x00, 0x01) => "FILEMARK DETECTED",
(0x14, 0x02) => "FILEMARK OR SETMARK NOT FOUND",
(0x5D, 0x65) => "FIRMWARE IMPENDING FAILURE ACCESS TIMES TOO HIGH",
(0x5D, 0x67) => "FIRMWARE IMPENDING FAILURE CHANNEL PARAMETRICS",
(0x5D, 0x68) => "FIRMWARE IMPENDING FAILURE CONTROLLER DETECTED",
(0x5D, 0x62) => "FIRMWARE IMPENDING FAILURE DATA ERROR RATE TOO HIGH",
(0x5D, 0x6C) => "FIRMWARE IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT",
(0x5D, 0x61) => "FIRMWARE IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH",
(0x5D, 0x60) => "FIRMWARE IMPENDING FAILURE GENERAL HARD DRIVE FAILURE",
(0x5D, 0x63) => "FIRMWARE IMPENDING FAILURE SEEK ERROR RATE TOO HIGH",
(0x5D, 0x6A) => "FIRMWARE IMPENDING FAILURE SEEK TIME PERFORMANCE",
(0x5D, 0x6B) => "FIRMWARE IMPENDING FAILURE SPIN-UP RETRY COUNT",
(0x5D, 0x66) => "FIRMWARE IMPENDING FAILURE START UNIT TIMES TOO HIGH",
(0x5D, 0x69) => "FIRMWARE IMPENDING FAILURE THROUGHPUT PERFORMANCE",
(0x5D, 0x64) => "FIRMWARE IMPENDING FAILURE TOO MANY BLOCK REASSIGNS",
(0x09, 0x02) => "FOCUS SERVO FAILURE",
(0x31, 0x01) => "FORMAT COMMAND FAILED",
(0x28, 0x02) => "FORMAT-LAYER MAY HAVE CHANGED",
(0x58, 0x00) => "GENERATION DOES NOT EXIST",
(0x1C, 0x02) => "GROWN DEFECT LIST NOT FOUND",
(0x5D, 0x15) => "HARDWARE IMPENDING FAILURE ACCESS TIMES TOO HIGH",
(0x5D, 0x17) => "HARDWARE IMPENDING FAILURE CHANNEL PARAMETRICS",
(0x5D, 0x18) => "HARDWARE IMPENDING FAILURE CONTROLLER DETECTED",
(0x5D, 0x12) => "HARDWARE IMPENDING FAILURE DATA ERROR RATE TOO HIGH",
(0x5D, 0x1C) => "HARDWARE IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT",
(0x5D, 0x11) => "HARDWARE IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH",
(0x5D, 0x10) => "HARDWARE IMPENDING FAILURE GENERAL HARD DRIVE FAILURE",
(0x5D, 0x13) => "HARDWARE IMPENDING FAILURE SEEK ERROR RATE TOO HIGH",
(0x5D, 0x1A) => "HARDWARE IMPENDING FAILURE SEEK TIME PERFORMANCE",
(0x5D, 0x1B) => "HARDWARE IMPENDING FAILURE SPIN-UP RETRY COUNT",
(0x5D, 0x16) => "HARDWARE IMPENDING FAILURE START UNIT TIMES TOO HIGH",
(0x5D, 0x19) => "HARDWARE IMPENDING FAILURE THROUGHPUT PERFORMANCE",
(0x5D, 0x14) => "HARDWARE IMPENDING FAILURE TOO MANY BLOCK REASSIGNS",
(0x27, 0x01) => "HARDWARE WRITE PROTECTED",
(0x09, 0x04) => "HEAD SELECT FAULT",
(0x00, 0x06) => "I/O PROCESS TERMINATED",
(0x10, 0x00) => "ID CRC OR ECC ERROR",
(0x5E, 0x03) => "IDLE CONDITION ACTIVATED BY COMMAND",
(0x5E, 0x01) => "IDLE CONDITION ACTIVATED BY TIMER",
(0x5E, 0x06) => "IDLE_B CONDITION ACTIVATED BY COMMAND",
(0x5E, 0x05) => "IDLE_B CONDITION ACTIVATED BY TIMER",
(0x5E, 0x08) => "IDLE_C CONDITION ACTIVATED BY COMMAND",
(0x5E, 0x07) => "IDLE_C CONDITION ACTIVATED BY TIMER",
(0x20, 0x0C) => "ILLEGAL COMMAND WHEN NOT IN APPEND-ONLY MODE",
(0x20, 0x06) => "ILLEGAL COMMAND WHILE IN EXPLICIT ADDRESS MODE",
(0x20, 0x07) => "ILLEGAL COMMAND WHILE IN IMPLICIT ADDRESS MODE",
(0x20, 0x04) => "ILLEGAL COMMAND WHILE IN WRITE CAPABLE STATE",
(0x22, 0x00) => "ILLEGAL FUNCTION (USE 20 00, 24 00, OR 26 00)",
(0x64, 0x00) => "ILLEGAL MODE FOR THIS TRACK",
(0x2C, 0x05) => "ILLEGAL POWER CONDITION REQUEST",
(0x2A, 0x07) => "IMPLICIT ASYMMETRIC ACCESS STATE TRANSITION FAILED",
(0x28, 0x01) => "IMPORT OR EXPORT ELEMENT ACCESSED",
(0x28, 0x03) => "IMPORT/EXPORT ELEMENT ACCESSED, MEDIUM CHANGED",
(0x30, 0x00) => "INCOMPATIBLE MEDIUM INSTALLED",
(0x30, 0x12) => "INCOMPATIBLE VOLUME QUALIFIER",
(0x30, 0x11) => "INCOMPATIBLE VOLUME TYPE",
(0x11, 0x08) => "INCOMPLETE BLOCK READ",
(0x26, 0x11) => "INCOMPLETE KEY-ASSOCIATED DATA SET",
(0x0D, 0x03) => "INCORRECT COPY TARGET DEVICE TYPE",
(0x74, 0x03) => "INCORRECT DATA ENCRYPTION KEY",
(0x74, 0x0B) => "INCORRECT ENCRYPTION PARAMETERS",
(0x0E, 0x02) => "INFORMATION UNIT TOO LONG",
(0x0E, 0x01) => "INFORMATION UNIT TOO SHORT",
(0x47, 0x03) => "INFORMATION UNIT iuCRC ERROR DETECTED",
(0x6A, 0x00) => "INFORMATIONAL, REFER TO LOG",
(0x48, 0x00) => "INITIATOR DETECTED ERROR MESSAGE RECEIVED",
(0x4B, 0x06) => "INITIATOR RESPONSE TIMEOUT",
(0x26, 0x0B) => "INLINE DATA LENGTH EXCEEDED",
(0x3F, 0x03) => "INQUIRY DATA HAS CHANGED",
(0x55, 0x05) => "INSUFFICIENT ACCESS CONTROL RESOURCES",
(0x6F, 0x06) => "INSUFFICIENT BLOCK COUNT FOR BINDING NONCE RECORDING",
(0x55, 0x0B) => "INSUFFICIENT POWER FOR OPERATION",
(0x55, 0x04) => "INSUFFICIENT REGISTRATION RESOURCES",
(0x55, 0x02) => "INSUFFICIENT RESERVATION RESOURCES",
(0x55, 0x03) => "INSUFFICIENT RESOURCES",
(0x2E, 0x00) => "INSUFFICIENT TIME FOR OPERATION",
(0x44, 0x00) => "INTERNAL TARGET FAILURE",
(0x21, 0x02) => "INVALID ADDRESS FOR WRITE",
(0x3D, 0x00) => "INVALID BITS IN IDENTIFY MESSAGE",
(0x2C, 0x02) => "INVALID COMBINATION OF WINDOWS SPECIFIED",
(0x20, 0x00) => "INVALID COMMAND OPERATION CODE",
(0x26, 0x0F) => "INVALID DATA-OUT BUFFER INTEGRITY CHECK VALUE",
(0x21, 0x01) => "INVALID ELEMENT ADDRESS",
(0x24, 0x00) => "INVALID FIELD IN CDB",
(0x0E, 0x03) => "INVALID FIELD IN COMMAND INFORMATION UNIT",
(0x26, 0x00) => "INVALID FIELD IN PARAMETER LIST",
(0x0E, 0x00) => "INVALID INFORMATION UNIT",
(0x49, 0x00) => "INVALID MESSAGE ERROR",
(0x26, 0x0C) => "INVALID OPERATION FOR COPY SOURCE OR DESTINATION",
(0x64, 0x01) => "INVALID PACKET SIZE",
(0x26, 0x0E) => "INVALID PARAMETER WHILE PORT IS ENABLED",
(0x26, 0x04) => "INVALID RELEASE OF PERSISTENT RESERVATION",
(0x74, 0x12) => "INVALID SA USAGE",
(0x4B, 0x01) => "INVALID TARGET PORT TRANSFER TAG RECEIVED",
(0x23, 0x00) => "INVALID TOKEN OPERATION, CAUSE NOT REPORTABLE",
(0x21, 0x03) => "INVALID WRITE CROSSING LAYER JUMP",
(0x24, 0x08) => "INVALID XCDB",
(0x3F, 0x12) => "iSCSI IP ADDRESS ADDED",
(0x3F, 0x14) => "iSCSI IP ADDRESS CHANGED",
(0x3F, 0x13) => "iSCSI IP ADDRESS REMOVED",
(0x29, 0x07) => "I_T NEXUS LOSS OCCURRED",
(0x11, 0x05) => "L-EC UNCORRECTABLE ERROR",
(0x60, 0x00) => "LAMP FAILURE",
(0x14, 0x07) => "LOCATE OPERATION FAILURE",
(0x00, 0x19) => "LOCATE OPERATION IN PROGRESS",
(0x5B, 0x02) => "LOG COUNTER AT MAXIMUM",
(0x5B, 0x00) => "LOG EXCEPTION",
(0x5B, 0x03) => "LOG LIST CODES EXHAUSTED",
(0x2A, 0x02) => "LOG PARAMETERS CHANGED",
(0x21, 0x00) => "LOGICAL BLOCK ADDRESS OUT OF RANGE",
(0x10, 0x02) => "LOGICAL BLOCK APPLICATION TAG CHECK FAILED",
(0x10, 0x01) => "LOGICAL BLOCK GUARD CHECK FAILED",
(0x10, 0x04) => "LOGICAL BLOCK PROTECTION ERROR ON RECOVER BUFFERED DATA",
(0x10, 0x05) => "LOGICAL BLOCK PROTECTION METHOD ERROR",
(0x10, 0x03) => "LOGICAL BLOCK REFERENCE TAG CHECK FAILED",
(0x74, 0x71) => "LOGICAL UNIT ACCESS NOT AUTHORIZED",
(0x08, 0x03) => "LOGICAL UNIT COMMUNICATION CRC ERROR (ULTRA-DMA/32)",
(0x08, 0x00) => "LOGICAL UNIT COMMUNICATION FAILURE",
(0x08, 0x02) => "LOGICAL UNIT COMMUNICATION PARITY ERROR",
(0x08, 0x01) => "LOGICAL UNIT COMMUNICATION TIME-OUT",
(0x05, 0x00) => "LOGICAL UNIT DOES NOT RESPOND TO SELECTION",
(0x4C, 0x00) => "LOGICAL UNIT FAILED SELF-CONFIGURATION",
(0x3E, 0x03) => "LOGICAL UNIT FAILED SELF-TEST",
(0x3E, 0x01) => "LOGICAL UNIT FAILURE",
(0x5D, 0x02) => "LOGICAL UNIT FAILURE PREDICTION THRESHOLD EXCEEDED",
(0x3E, 0x00) => "LOGICAL UNIT HAS NOT SELF-CONFIGURED YET",
(0x04, 0x01) => "LOGICAL UNIT IS IN PROCESS OF BECOMING READY",
(0x04, 0x0A) => "LOGICAL UNIT NOT ACCESSIBLE, ASYMMETRIC ACCESS STATE TRANSITION",
(0x04, 0x0B) => "LOGICAL UNIT NOT ACCESSIBLE, TARGET PORT IN STANDBY STATE",
(0x04, 0x0C) => "LOGICAL UNIT NOT ACCESSIBLE, TARGET PORT IN UNAVAILABLE STATE",
(0x68, 0x00) => "LOGICAL UNIT NOT CONFIGURED",
(0x04, 0x18) => "LOGICAL UNIT NOT READY, A DOOR IS OPEN",
(0x04, 0x1C) => "LOGICAL UNIT NOT READY, ADDITIONAL POWER USE NOT YET GRANTED",
(0x04, 0x10) => "LOGICAL UNIT NOT READY, AUXILIARY MEMORY NOT ACCESSIBLE",
(0x04, 0x17) => "LOGICAL UNIT NOT READY, CALIBRATION REQUIRED",
(0x04, 0x00) => "LOGICAL UNIT NOT READY, CAUSE NOT REPORTABLE",
(0x04, 0x16) => "LOGICAL UNIT NOT READY, CONFIGURATION REQUIRED",
(0x04, 0x04) => "LOGICAL UNIT NOT READY, FORMAT IN PROGRESS",
(0x04, 0x02) => "LOGICAL UNIT NOT READY, INITIALIZING COMMAND REQUIRED",
(0x04, 0x08) => "LOGICAL UNIT NOT READY, LONG WRITE IN PROGRESS",
(0x04, 0x03) => "LOGICAL UNIT NOT READY, MANUAL INTERVENTION REQUIRED",
(0x04, 0x11) => "LOGICAL UNIT NOT READY, NOTIFY (ENABLE SPINUP) REQUIRED",
(0x04, 0x12) => "LOGICAL UNIT NOT READY, OFFLINE",
(0x04, 0x19) => "LOGICAL UNIT NOT READY, OPERATING IN SEQUENTIAL MODE",
(0x04, 0x07) => "LOGICAL UNIT NOT READY, OPERATION IN PROGRESS",
(0x04, 0x05) => "LOGICAL UNIT NOT READY, REBUILD IN PROGRESS",
(0x04, 0x06) => "LOGICAL UNIT NOT READY, RECALCULATION IN PROGRESS",
(0x04, 0x15) => "LOGICAL UNIT NOT READY, ROBOTICS DISABLED",
(0x04, 0x13) => "LOGICAL UNIT NOT READY, SA CREATION IN PROGRESS",
(0x04, 0x1B) => "LOGICAL UNIT NOT READY, SANITIZE IN PROGRESS",
(0x04, 0x09) => "LOGICAL UNIT NOT READY, SELF-TEST IN PROGRESS",
(0x04, 0x14) => "LOGICAL UNIT NOT READY, SPACE ALLOCATION IN PROGRESS",
(0x04, 0x1A) => "LOGICAL UNIT NOT READY, START STOP UNIT COMMAND IN PROGRESS",
(0x04, 0x0D) => "LOGICAL UNIT NOT READY, STRUCTURE CHECK REQUIRED",
(0x25, 0x00) => "LOGICAL UNIT NOT SUPPORTED",
(0x27, 0x02) => "LOGICAL UNIT SOFTWARE WRITE PROTECTED",
(0x00, 0x1F) => "LOGICAL UNIT TRANSITIONING TO ANOTHER POWER CONDITION",
(0x3E, 0x04) => "LOGICAL UNIT UNABLE TO UPDATE SELF-TEST LOG",
(0x5E, 0x00) => "LOW POWER CONDITION ON",
(0x55, 0x08) => "MAXIMUM NUMBER OF SUPPLEMENTAL DECRYPTION KEYS EXCEEDED",
(0x15, 0x01) => "MECHANICAL POSITIONING ERROR",
(0x3B, 0x16) => "MECHANICAL POSITIONING OR CHANGER ERROR",
(0x5D, 0x01) => "MEDIA FAILURE PREDICTION THRESHOLD EXCEEDED",
(0x53, 0x00) => "MEDIA LOAD OR EJECT FAILED",
(0x6F, 0x04) => "MEDIA REGION CODE IS MISMATCHED TO LOGICAL UNIT REGION",
(0x3F, 0x11) => "MEDIUM AUXILIARY MEMORY ACCESSIBLE",
(0x55, 0x09) => "MEDIUM AUXILIARY MEMORY NOT ACCESSIBLE",
(0x3B, 0x0D) => "MEDIUM DESTINATION ELEMENT FULL",
(0x31, 0x00) => "MEDIUM FORMAT CORRUPTED",
(0x3F, 0x10) => "MEDIUM LOADABLE",
(0x3B, 0x13) => "MEDIUM MAGAZINE INSERTED",
(0x3B, 0x14) => "MEDIUM MAGAZINE LOCKED",
(0x3B, 0x11) => "MEDIUM MAGAZINE NOT ACCESSIBLE",
(0x3B, 0x12) => "MEDIUM MAGAZINE REMOVED",
(0x3B, 0x15) => "MEDIUM MAGAZINE UNLOCKED",
(0x30, 0x10) => "MEDIUM NOT FORMATTED",
(0x3A, 0x00) => "MEDIUM NOT PRESENT",
(0x3A, 0x03) => "MEDIUM NOT PRESENT - LOADABLE",
(0x3A, 0x04) => "MEDIUM NOT PRESENT - MEDIUM AUXILIARY MEMORY ACCESSIBLE",
(0x3A, 0x01) => "MEDIUM NOT PRESENT - TRAY CLOSED",
(0x3A, 0x02) => "MEDIUM NOT PRESENT - TRAY OPEN",
(0x53, 0x02) => "MEDIUM REMOVAL PREVENTED",
(0x53, 0x03) => "MEDIUM REMOVAL PREVENTED BY DATA TRANSFER ELEMENT",
(0x3B, 0x0E) => "MEDIUM SOURCE ELEMENT EMPTY",
(0x53, 0x04) => "MEDIUM THREAD OR UNTHREAD FAILURE",
(0x43, 0x00) => "MESSAGE ERROR",
(0x3F, 0x01) => "MICROCODE HAS BEEN CHANGED",
(0x1D, 0x00) => "MISCOMPARE DURING VERIFY OPERATION",
(0x1D, 0x01) => "MISCOMPARE VERIFY OF UNMAPPED LBA",
(0x11, 0x0A) => "MISCORRECTED ERROR",
(0x2A, 0x01) => "MODE PARAMETERS CHANGED",
(0x67, 0x03) => "MODIFICATION OF LOGICAL UNIT FAILED",
(0x69, 0x01) => "MULTIPLE LOGICAL UNIT FAILURES",
(0x07, 0x00) => "MULTIPLE PERIPHERAL DEVICES SELECTED",
(0x11, 0x03) => "MULTIPLE READ ERRORS",
(0x67, 0x09) => "MULTIPLY ASSIGNED LOGICAL UNIT",
(0x4B, 0x04) => "NAK RECEIVED",
(0x00, 0x00) => "NO ADDITIONAL SENSE INFORMATION",
(0x00, 0x15) => "NO CURRENT AUDIO STATUS TO RETURN",
(0x32, 0x00) => "NO DEFECT SPARE LOCATION AVAILABLE",
(0x11, 0x09) => "NO GAP FOUND",
(0x01, 0x00) => "NO INDEX/SECTOR SIGNAL",
(0x72, 0x07) => "NO MORE TEST ZONE EXTENSIONS ARE ALLOWED",
(0x72, 0x05) => "NO MORE TRACK RESERVATIONS ALLOWED",
(0x06, 0x00) => "NO REFERENCE POSITION FOUND",
(0x02, 0x00) => "NO SEEK COMPLETE",
(0x03, 0x01) => "NO WRITE CURRENT",
(0x24, 0x06) => "NONCE NOT UNIQUE",
(0x24, 0x07) => "NONCE TIMESTAMP OUT OF RANGE",
(0x28, 0x00) => "NOT READY TO READY CHANGE, MEDIUM MAY HAVE CHANGED",
(0x2C, 0x0B) => "NOT RESERVED",
(0x00, 0x16) => "OPERATION IN PROGRESS",
(0x5A, 0x01) => "OPERATOR MEDIUM REMOVAL REQUEST",
(0x5A, 0x00) => "OPERATOR REQUEST OR STATE CHANGE INPUT",
(0x5A, 0x03) => "OPERATOR SELECTED WRITE PERMIT",
(0x5A, 0x02) => "OPERATOR SELECTED WRITE PROTECT",
(0x2C, 0x0C) => "ORWRITE GENERATION DOES NOT MATCH",
(0x61, 0x02) => "OUT OF FOCUS",
(0x4E, 0x00) => "OVERLAPPED COMMANDS ATTEMPTED",
(0x2D, 0x00) => "OVERWRITE ERROR ON UPDATE IN PLACE",
(0x20, 0x05) => "(obsolete)", (0x24, 0x02) => "(obsolete)", (0x24, 0x03) => "(obsolete)", (0x63, 0x01) => "PACKET DOES NOT FIT IN AVAILABLE SPACE",
(0x3B, 0x05) => "PAPER JAM",
(0x1A, 0x00) => "PARAMETER LIST LENGTH ERROR",
(0x26, 0x01) => "PARAMETER NOT SUPPORTED",
(0x26, 0x02) => "PARAMETER VALUE INVALID",
(0x2A, 0x00) => "PARAMETERS CHANGED",
(0x69, 0x02) => "PARITY/DATA MISMATCH",
(0x1F, 0x00) => "PARTIAL DEFECT LIST TRANSFER",
(0x2C, 0x0A) => "PARTITION OR COLLECTION CONTAINS USER OBJECTS",
(0x03, 0x00) => "PERIPHERAL DEVICE WRITE FAULT",
(0x27, 0x05) => "PERMANENT WRITE PROTECT",
(0x2C, 0x06) => "PERSISTENT PREVENT CONFLICT",
(0x27, 0x04) => "PERSISTENT WRITE PROTECT",
(0x47, 0x06) => "PHY TEST FUNCTION IN PROGRESS",
(0x50, 0x02) => "POSITION ERROR RELATED TO TIMING",
(0x3B, 0x0C) => "POSITION PAST BEGINNING OF MEDIUM",
(0x3B, 0x0B) => "POSITION PAST END OF MEDIUM",
(0x15, 0x02) => "POSITIONING ERROR DETECTED BY READ OF MEDIUM",
(0x73, 0x01) => "POWER CALIBRATION AREA ALMOST FULL",
(0x73, 0x03) => "POWER CALIBRATION AREA ERROR",
(0x73, 0x02) => "POWER CALIBRATION AREA IS FULL",
(0x29, 0x01) => "POWER ON OCCURRED",
(0x29, 0x00) => "POWER ON, RESET, OR BUS DEVICE RESET OCCURRED",
(0x5E, 0x41) => "POWER STATE CHANGE TO ACTIVE",
(0x5E, 0x47) => "POWER STATE CHANGE TO DEVICE CONTROL",
(0x5E, 0x42) => "POWER STATE CHANGE TO IDLE",
(0x5E, 0x45) => "POWER STATE CHANGE TO SLEEP",
(0x5E, 0x43) => "POWER STATE CHANGE TO STANDBY",
(0x42, 0x00) => "POWER-ON OR SELF-TEST FAILURE (SHOULD USE 40 NN)",
(0x2C, 0x07) => "PREVIOUS BUSY STATUS",
(0x2C, 0x09) => "PREVIOUS RESERVATION CONFLICT STATUS",
(0x2C, 0x08) => "PREVIOUS TASK SET FULL STATUS",
(0x1C, 0x01) => "PRIMARY DEFECT LIST NOT FOUND",
(0x2A, 0x08) => "PRIORITY CHANGED",
(0x73, 0x05) => "PROGRAM MEMORY AREA IS FULL",
(0x73, 0x04) => "PROGRAM MEMORY AREA UPDATE FAILURE",
(0x00, 0x07) => "PROGRAMMABLE EARLY WARNING DETECTED",
(0x47, 0x05) => "PROTOCOL SERVICE CRC ERROR",
(0x55, 0x07) => "QUOTA ERROR",
(0x40, 0x00) => "RAM FAILURE (SHOULD USE 40 NN)",
(0x15, 0x00) => "RANDOM POSITIONING ERROR",
(0x73, 0x17) => "RDZ IS FULL",
(0x11, 0x13) => "READ ERROR - FAILED RETRANSMISSION REQUEST",
(0x11, 0x14) => "READ ERROR - LBA MARKED BAD BY APPLICATION CLIENT",
(0x11, 0x11) => "READ ERROR - LOSS OF STREAMING",
(0x6F, 0x03) => "READ OF SCRAMBLED SECTOR WITHOUT AUTHENTICATION",
(0x3B, 0x0A) => "READ PAST BEGINNING OF MEDIUM",
(0x3B, 0x09) => "READ PAST END OF MEDIUM",
(0x3B, 0x17) => "READ PAST END OF USER OBJECT",
(0x11, 0x01) => "READ RETRIES EXHAUSTED",
(0x6C, 0x00) => "REBUILD FAILURE OCCURRED",
(0x6D, 0x00) => "RECALCULATE FAILURE OCCURRED",
(0x14, 0x01) => "RECORD NOT FOUND",
(0x14, 0x06) => "RECORD NOT FOUND - DATA AUTO-REALLOCATED",
(0x14, 0x05) => "RECORD NOT FOUND - RECOMMEND REASSIGNMENT",
(0x14, 0x00) => "RECORDED ENTITY NOT FOUND",
(0x18, 0x02) => "RECOVERED DATA - DATA AUTO-REALLOCATED",
(0x18, 0x05) => "RECOVERED DATA - RECOMMEND REASSIGNMENT",
(0x18, 0x06) => "RECOVERED DATA - RECOMMEND REWRITE",
(0x17, 0x05) => "RECOVERED DATA USING PREVIOUS SECTOR ID",
(0x18, 0x03) => "RECOVERED DATA WITH CIRC",
(0x18, 0x07) => "RECOVERED DATA WITH ECC - DATA REWRITTEN",
(0x18, 0x01) => "RECOVERED DATA WITH ERROR CORR. & RETRIES APPLIED",
(0x18, 0x00) => "RECOVERED DATA WITH ERROR CORRECTION APPLIED",
(0x18, 0x04) => "RECOVERED DATA WITH L-EC",
(0x18, 0x08) => "RECOVERED DATA WITH LINKING",
(0x17, 0x03) => "RECOVERED DATA WITH NEGATIVE HEAD OFFSET",
(0x17, 0x00) => "RECOVERED DATA WITH NO ERROR CORRECTION APPLIED",
(0x17, 0x02) => "RECOVERED DATA WITH POSITIVE HEAD OFFSET",
(0x17, 0x01) => "RECOVERED DATA WITH RETRIES",
(0x17, 0x04) => "RECOVERED DATA WITH RETRIES AND/OR CIRC APPLIED",
(0x17, 0x06) => "RECOVERED DATA WITHOUT ECC - DATA AUTO-REALLOCATED",
(0x17, 0x09) => "RECOVERED DATA WITHOUT ECC - DATA REWRITTEN",
(0x17, 0x07) => "RECOVERED DATA WITHOUT ECC - RECOMMEND REASSIGNMENT",
(0x17, 0x08) => "RECOVERED DATA WITHOUT ECC - RECOMMEND REWRITE",
(0x1E, 0x00) => "RECOVERED ID WITH ECC CORRECTION",
(0x3F, 0x06) => "REDUNDANCY GROUP CREATED OR MODIFIED",
(0x3F, 0x07) => "REDUNDANCY GROUP DELETED",
(0x6B, 0x01) => "REDUNDANCY LEVEL GOT BETTER",
(0x6B, 0x02) => "REDUNDANCY LEVEL GOT WORSE",
(0x2A, 0x05) => "REGISTRATIONS PREEMPTED",
(0x67, 0x05) => "REMOVE OF LOGICAL UNIT FAILED",
(0x3F, 0x0E) => "REPORTED LUNS DATA HAS CHANGED",
(0x3B, 0x08) => "REPOSITION ERROR",
(0x2A, 0x03) => "RESERVATIONS PREEMPTED",
(0x2A, 0x04) => "RESERVATIONS RELEASED",
(0x00, 0x1A) => "REWIND OPERATION IN PROGRESS",
(0x36, 0x00) => "RIBBON, INK, OR TONER FAILURE",
(0x73, 0x06) => "RMA/PMA IS ALMOST FULL",
(0x72, 0x06) => "RMZ EXTENSION IS NOT ALLOWED",
(0x37, 0x00) => "ROUNDED PARAMETER",
(0x5C, 0x00) => "RPL STATUS CHANGE",
(0x2A, 0x14) => "SA CREATION CAPABILITIES DATA HAS CHANGED",
(0x74, 0x30) => "SA CREATION PARAMETER NOT SUPPORTED",
(0x74, 0x10) => "SA CREATION PARAMETER VALUE INVALID",
(0x74, 0x11) => "SA CREATION PARAMETER VALUE REJECTED",
(0x31, 0x03) => "SANITIZE COMMAND FAILED",
(0x39, 0x00) => "SAVING PARAMETERS NOT SUPPORTED",
(0x62, 0x00) => "SCAN HEAD POSITIONING ERROR",
(0x29, 0x02) => "SCSI BUS RESET OCCURRED",
(0x47, 0x00) => "SCSI PARITY ERROR",
(0x47, 0x02) => "SCSI PARITY ERROR DETECTED DURING ST DATA PHASE",
(0x54, 0x00) => "SCSI TO HOST SYSTEM INTERFACE FAILURE",
(0x24, 0x04) => "SECURITY AUDIT VALUE FROZEN",
(0x74, 0x79) => "SECURITY CONFLICT IN TRANSLATED DEVICE",
(0x74, 0x00) => "SECURITY ERROR",
(0x24, 0x05) => "SECURITY WORKING KEY FROZEN",
(0x45, 0x00) => "SELECT OR RESELECT FAILURE",
(0x3B, 0x00) => "SEQUENTIAL POSITIONING ERROR",
(0x5D, 0x45) => "SERVO IMPENDING FAILURE ACCESS TIMES TOO HIGH",
(0x5D, 0x47) => "SERVO IMPENDING FAILURE CHANNEL PARAMETRICS",
(0x5D, 0x48) => "SERVO IMPENDING FAILURE CONTROLLER DETECTED",
(0x5D, 0x42) => "SERVO IMPENDING FAILURE DATA ERROR RATE TOO HIGH",
(0x5D, 0x4C) => "SERVO IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT",
(0x5D, 0x41) => "SERVO IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH",
(0x5D, 0x40) => "SERVO IMPENDING FAILURE GENERAL HARD DRIVE FAILURE",
(0x5D, 0x43) => "SERVO IMPENDING FAILURE SEEK ERROR RATE TOO HIGH",
(0x5D, 0x4A) => "SERVO IMPENDING FAILURE SEEK TIME PERFORMANCE",
(0x5D, 0x4B) => "SERVO IMPENDING FAILURE SPIN-UP RETRY COUNT",
(0x5D, 0x46) => "SERVO IMPENDING FAILURE START UNIT TIMES TOO HIGH",
(0x5D, 0x49) => "SERVO IMPENDING FAILURE THROUGHPUT PERFORMANCE",
(0x5D, 0x44) => "SERVO IMPENDING FAILURE TOO MANY BLOCK REASSIGNS",
(0x72, 0x00) => "SESSION FIXATION ERROR",
(0x72, 0x03) => "SESSION FIXATION ERROR - INCOMPLETE TRACK IN SESSION",
(0x72, 0x01) => "SESSION FIXATION ERROR WRITING LEAD-IN",
(0x72, 0x02) => "SESSION FIXATION ERROR WRITING LEAD-OUT",
(0x00, 0x1B) => "SET CAPACITY OPERATION IN PROGRESS",
(0x67, 0x0A) => "SET TARGET PORT GROUPS COMMAND FAILED",
(0x00, 0x03) => "SETMARK DETECTED",
(0x3B, 0x04) => "SLEW FAILURE",
(0x47, 0x7F) => "SOME COMMANDS CLEARED BY ISCSI PROTOCOL EVENT",
(0x27, 0x07) => "SPACE ALLOCATION FAILED WRITE PROTECT",
(0x5D, 0x03) => "SPARE AREA EXHAUSTION PREDICTION THRESHOLD EXCEEDED",
(0x3F, 0x08) => "SPARE CREATED OR MODIFIED",
(0x3F, 0x09) => "SPARE DELETED",
(0x5D, 0x55) => "SPINDLE IMPENDING FAILURE ACCESS TIMES TOO HIGH",
(0x5D, 0x57) => "SPINDLE IMPENDING FAILURE CHANNEL PARAMETRICS",
(0x5D, 0x58) => "SPINDLE IMPENDING FAILURE CONTROLLER DETECTED",
(0x5D, 0x52) => "SPINDLE IMPENDING FAILURE DATA ERROR RATE TOO HIGH",
(0x5D, 0x5C) => "SPINDLE IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT",
(0x5D, 0x51) => "SPINDLE IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH",
(0x5D, 0x50) => "SPINDLE IMPENDING FAILURE GENERAL HARD DRIVE FAILURE",
(0x5D, 0x53) => "SPINDLE IMPENDING FAILURE SEEK ERROR RATE TOO HIGH",
(0x5D, 0x5A) => "SPINDLE IMPENDING FAILURE SEEK TIME PERFORMANCE",
(0x5D, 0x5B) => "SPINDLE IMPENDING FAILURE SPIN-UP RETRY COUNT",
(0x5D, 0x56) => "SPINDLE IMPENDING FAILURE START UNIT TIMES TOO HIGH",
(0x5D, 0x59) => "SPINDLE IMPENDING FAILURE THROUGHPUT PERFORMANCE",
(0x5D, 0x54) => "SPINDLE IMPENDING FAILURE TOO MANY BLOCK REASSIGNS",
(0x09, 0x03) => "SPINDLE SERVO FAILURE",
(0x5C, 0x02) => "SPINDLES NOT SYNCHRONIZED",
(0x5C, 0x01) => "SPINDLES SYNCHRONIZED",
(0x5E, 0x04) => "STANDBY CONDITION ACTIVATED BY COMMAND",
(0x5E, 0x02) => "STANDBY CONDITION ACTIVATED BY TIMER",
(0x5E, 0x0A) => "STANDBY_Y CONDITION ACTIVATED BY COMMAND",
(0x5E, 0x09) => "STANDBY_Y CONDITION ACTIVATED BY TIMER",
(0x6B, 0x00) => "STATE CHANGE HAS OCCURRED",
(0x1B, 0x00) => "SYNCHRONOUS DATA TRANSFER ERROR",
(0x55, 0x01) => "SYSTEM BUFFER FULL",
(0x55, 0x00) => "SYSTEM RESOURCE FAILURE",
(0x4D, _) => "TAGGED OVERLAPPED COMMANDS", (0x33, 0x00) => "TAPE LENGTH ERROR",
(0x3B, 0x03) => "TAPE OR ELECTRONIC VERTICAL FORMS UNIT NOT READY",
(0x3B, 0x01) => "TAPE POSITION ERROR AT BEGINNING-OF-MEDIUM",
(0x3B, 0x02) => "TAPE POSITION ERROR AT END-OF-MEDIUM",
(0x3F, 0x00) => "TARGET OPERATING CONDITIONS HAVE CHANGED",
(0x38, 0x07) => "THIN PROVISIONING SOFT THRESHOLD REACHED",
(0x0D, 0x01) => "THIRD PARTY DEVICE FAILURE",
(0x5B, 0x01) => "THRESHOLD CONDITION MET",
(0x26, 0x03) => "THRESHOLD PARAMETERS NOT SUPPORTED",
(0x3E, 0x02) => "TIMEOUT ON LOGICAL UNIT",
(0x2A, 0x10) => "TIMESTAMP CHANGED",
(0x26, 0x08) => "TOO MANY SEGMENT DESCRIPTORS",
(0x26, 0x06) => "TOO MANY TARGET DESCRIPTORS",
(0x2C, 0x01) => "TOO MANY WINDOWS SPECIFIED",
(0x4B, 0x02) => "TOO MUCH WRITE DATA",
(0x09, 0x00) => "TRACK FOLLOWING ERROR",
(0x09, 0x01) => "TRACKING SERVO FAILURE",
(0x29, 0x06) => "TRANSCEIVER MODE CHANGED TO LVD",
(0x29, 0x05) => "TRANSCEIVER MODE CHANGED TO SINGLE-ENDED",
(0x61, 0x01) => "UNABLE TO ACQUIRE VIDEO",
(0x74, 0x01) => "UNABLE TO DECRYPT DATA",
(0x74, 0x0C) => "UNABLE TO DECRYPT PARAMETER LIST",
(0x57, 0x00) => "UNABLE TO RECOVER TABLE-OF-CONTENTS",
(0x74, 0x02) => "UNENCRYPTED DATA ENCOUNTERED WHILE DECRYPTING",
(0x26, 0x0A) => "UNEXPECTED INEXACT SEGMENT",
(0x74, 0x06) => "UNKNOWN SIGNATURE VERIFICATION KEY",
(0x53, 0x01) => "UNLOAD TAPE FAILURE",
(0x08, 0x04) => "UNREACHABLE COPY TARGET",
(0x11, 0x00) => "UNRECOVERED READ ERROR",
(0x11, 0x04) => "UNRECOVERED READ ERROR - AUTO REALLOCATE FAILED",
(0x11, 0x0B) => "UNRECOVERED READ ERROR - RECOMMEND REASSIGNMENT",
(0x11, 0x0C) => "UNRECOVERED READ ERROR - RECOMMEND REWRITE THE DATA",
(0x46, 0x00) => "UNSUCCESSFUL SOFT RESET",
(0x35, 0x01) => "UNSUPPORTED ENCLOSURE FUNCTION",
(0x26, 0x09) => "UNSUPPORTED SEGMENT DESCRIPTOR TYPE CODE",
(0x26, 0x07) => "UNSUPPORTED TARGET DESCRIPTOR TYPE CODE",
(0x59, 0x00) => "UPDATED BLOCK READ",
(0x26, 0x12) => "VENDOR SPECIFIC KEY REFERENCE NOT FOUND",
(0x00, 0x1C) => "VERIFY OPERATION IN PROGRESS",
(0x61, 0x00) => "VIDEO ACQUISITION ERROR",
(0x65, 0x00) => "VOLTAGE FAULT",
(0x53, 0x05) => "VOLUME IDENTIFIER INVALID",
(0x53, 0x06) => "VOLUME IDENTIFIER MISSING",
(0x3F, 0x0A) => "VOLUME SET CREATED OR MODIFIED",
(0x3F, 0x0C) => "VOLUME SET DEASSIGNED",
(0x3F, 0x0B) => "VOLUME SET DELETED",
(0x3F, 0x0D) => "VOLUME SET REASSIGNED",
(0x0B, 0x00) => "WARNING",
(0x0B, 0x05) => "WARNING - BACKGROUND MEDIUM SCAN DETECTED MEDIUM ERROR",
(0x0B, 0x04) => "WARNING - BACKGROUND PRE-SCAN DETECTED MEDIUM ERROR",
(0x0B, 0x03) => "WARNING - BACKGROUND SELF-TEST FAILED",
(0x0B, 0x07) => "WARNING - DEGRADED POWER TO NON-VOLATILE CACHE",
(0x0B, 0x02) => "WARNING - ENCLOSURE DEGRADED",
(0x0B, 0x06) => "WARNING - NON-VOLATILE CACHE NOW VOLATILE",
(0x0B, 0x08) => "WARNING - POWER LOSS EXPECTED",
(0x0B, 0x01) => "WARNING - SPECIFIED TEMPERATURE EXCEEDED",
(0x30, 0x0D) => "WORM MEDIUM - INTEGRITY CHECK",
(0x30, 0x0C) => "WORM MEDIUM - OVERWRITE ATTEMPTED",
(0x50, 0x00) => "WRITE APPEND ERROR",
(0x50, 0x01) => "WRITE APPEND POSITION ERROR",
(0x0C, 0x00) => "WRITE ERROR",
(0x0C, 0x02) => "WRITE ERROR - AUTO REALLOCATION FAILED",
(0x0C, 0x09) => "WRITE ERROR - LOSS OF STREAMING",
(0x0C, 0x0D) => "WRITE ERROR - NOT ENOUGH UNSOLICITED DATA",
(0x0C, 0x0A) => "WRITE ERROR - PADDING BLOCKS ADDED",
(0x0C, 0x03) => "WRITE ERROR - RECOMMEND REASSIGNMENT",
(0x0C, 0x01) => "WRITE ERROR - RECOVERED WITH AUTO REALLOCATION",
(0x0C, 0x08) => "WRITE ERROR - RECOVERY FAILED",
(0x0C, 0x07) => "WRITE ERROR - RECOVERY NEEDED",
(0x0C, 0x0C) => "WRITE ERROR - UNEXPECTED UNSOLICITED DATA",
(0x27, 0x00) => "WRITE PROTECTED",
(0x31, 0x02) => "ZONED FORMATTING FAILED DUE TO SPARE LINKING",
(x, _) if x >= 0x80 => "(vendor-specific)",
(_, x) if x >= 0x80 => "(vendor-specific)",
_ => { return None; }
})
}