Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

990 lines
59 KiB

  1. /*++
  2. Copyright (c) 1995 Microsoft Corporation
  3. Module Name:
  4. spt.h
  5. Abstract:
  6. SCSI_PASS_THROUGH header for user-mode apps
  7. Environment:
  8. User mode only
  9. Revision History:
  10. 4/10/2000 - created
  11. --*/
  12. #ifndef __SPTLIB_H__
  13. #define __SPTLIB_H__
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #pragma warning(push)
  18. #pragma warning(disable:4200) // array[0] is not a warning for this file
  19. #include <windows.h> // sdk
  20. #include <devioctl.h> // sdk
  21. #include <ntddscsi.h> // sdk
  22. #include <ntddstor.h> // sdk
  23. #define _NTSRB_ // allow user-mode scsi.h
  24. #include <scsi.h> // ddk
  25. #undef _NTSRB_
  26. #define SPT_DEFAULT_TIMEOUT 60 // one minute timeout is default
  27. #define SPT_MODE_SENSE_TIMEOUT 10 // more than this is not likely
  28. typedef enum _SPT_MODE_PAGE_TYPE {
  29. SptModePageTypeCurrent = 0x00,
  30. SptModePageTypeChangable = 0x40,
  31. SptModePageTypeDefault = 0x80,
  32. SptModePageTypeSaved = 0xc0
  33. } SPT_MODE_PAGE_TYPE, *PSPT_MODE_PAGE_TYPE;
  34. //
  35. // this simplified and speeds processing of MODE_SENSE
  36. // and MODE_SELECT commands
  37. //
  38. struct _SPT_MODE_PAGE_INFO;
  39. typedef struct _SPT_MODE_PAGE_INFO
  40. SPT_MODE_PAGE_INFO,
  41. *PSPT_MODE_PAGE_INFO;
  42. #define SPT_NOT_READY_RETRY_INTERVAL 100 // 10 seconds
  43. #define MAXIMUM_DEFAULT_RETRIES 5 // 5 retries
  44. /*++
  45. Routine Description:
  46. Validates the CDB length matches the opcode's command group.
  47. Arguments:
  48. Return Value:
  49. TRUE if size is correct or cannot be verified.
  50. FALSE if size is mismatched.
  51. --*/
  52. BOOL
  53. SptUtilValidateCdbLength(
  54. IN PCDB Cdb,
  55. IN UCHAR CdbSize
  56. );
  57. /*++
  58. Routine Description:
  59. Simplistic way to send a command to a device.
  60. Arguments:
  61. DeviceHandle - handle to device to send command to
  62. Cdb - command to send to the device
  63. CdbSize - size of the cdb
  64. Buffer - Buffer to send to/get from the device
  65. BufferSize - Size of available buffer on input.
  66. Size of returned data when routine completes
  67. iff GetDataFromDevice is TRUE
  68. GetDataFromDevice - TRUE if getting data from device
  69. FALSE if sending data to the device
  70. Return Value:
  71. TRUE if the command completed successfully
  72. --*/
  73. BOOL
  74. SptSendCdbToDevice(
  75. IN HANDLE DeviceHandle,
  76. IN PCDB Cdb,
  77. IN UCHAR CdbSize,
  78. IN PUCHAR Buffer,
  79. IN OUT PDWORD BufferSize,
  80. IN BOOLEAN GetDataFromDevice
  81. );
  82. /*++
  83. Routine Description:
  84. Arguments:
  85. DeviceHandle - handle to device to send command to
  86. Cdb - command to send to the device
  87. CdbSize - size of the cdb
  88. Buffer - Buffer to send to/get from the device
  89. BufferSize - Size of available buffer on input.
  90. Size of returned data when routine completes
  91. iff GetDataFromDevice is TRUE
  92. SenseData - Optional buffer to store sense data on errors.
  93. Must be NULL if SenseDataSize is zero.
  94. Must be non-NULL if SenseDataSize is non-zero.
  95. SenseDataSize - Size of sense data to return to host.
  96. Must be zero if SenseData is NULL.
  97. Must be non-zero if SenseData is non-NULL.
  98. GetDataFromDevice - TRUE if getting data from device
  99. FALSE if sending data to the device
  100. TimeOut - Number of seconds before the command should timeout
  101. Return Value:
  102. TRUE if the command completed successfully.
  103. FALSE if the command encountered an error
  104. Data will also be transferred (check *BufferSize) if there is sense
  105. data, but validity is not guaranteed.
  106. SenseData may be valid, and may report ERROR_SUCCESS, meaning that
  107. the resulting data is valid. (call SptUtilInterpretSenseInfo)
  108. --*/
  109. BOOL
  110. SptSendCdbToDeviceEx(
  111. IN HANDLE DeviceHandle,
  112. IN PCDB Cdb,
  113. IN UCHAR CdbSize,
  114. IN OUT PUCHAR Buffer,
  115. IN OUT PDWORD BufferSize,
  116. OUT PSENSE_DATA SenseData, // if non-null, size must be non-zero
  117. IN UCHAR SenseDataSize,
  118. IN BOOLEAN GetDataFromDevice, // true = receive data
  119. IN DWORD TimeOut // in seconds
  120. );
  121. /*++
  122. Routine Description:
  123. This is a user-mode translation of ClassInterpretSenseInfo()
  124. from classpnp.sys. The ErrorValue is deduced based upon the
  125. sense data, as well as whether the command should be retried or
  126. not (and in approximately how long).
  127. NOTE: we default to RETRY==TRUE except for known error classes
  128. Arguments:
  129. SenseData - pointer to the sense data
  130. SenseDataSize - size of sense data
  131. ErrorValue - pointer to location to store resulting error value.
  132. NOTE: may return ERROR_SUCCESS
  133. SuggestedRetry - pointer to location to store if the command should
  134. be retried. it is the responsibility of the caller to limit the
  135. number of retries.
  136. SuggestedRetryDelay - pointer to location to store how long the caller
  137. should delay (in 1/10 second increments) before retrying the command
  138. if SuggestedRetry ends up being set to TRUE.
  139. Return Value:
  140. None
  141. --*/
  142. VOID
  143. SptUtilInterpretSenseInfo(
  144. IN PSENSE_DATA SenseData,
  145. IN UCHAR SenseDataSize,
  146. OUT PDWORD ErrorValue, // from WinError.h
  147. OUT PBOOLEAN SuggestRetry OPTIONAL,
  148. OUT PDWORD SuggestRetryDelay OPTIONAL
  149. );
  150. /*++
  151. Routine Description:
  152. Locks the device for exclusive access. Uses the same method format and
  153. chkdsk use to gain exclusive access to the volume. This is a safe method
  154. to use, as the FS is automatically remounted when the handle to the device
  155. is closed.
  156. Arguments:
  157. VolumeHandle - Handle to the volume. Typically created using CreateFile()
  158. to a device of the format \\.\D:
  159. ForceDismount - If TRUE, will try to force dismount the disk even if
  160. there are open handles. Else this call fails if the volume
  161. is already opened by some other application. The UI to
  162. make the decision to force a dismount is left to the
  163. calling application.
  164. Return Value:
  165. TRUE if the volume was locked for exclusive access
  166. FALSE if the volume could not be locked.
  167. --*/
  168. BOOL
  169. SptUtilLockVolumeByHandle(
  170. IN HANDLE VolumeHandle,
  171. IN BOOLEAN ForceDismount
  172. );
  173. #if 0
  174. /*++
  175. Routine Description:
  176. Acquires a volume handle for the provided drive letter.
  177. Arguments:
  178. VolumeHandle - Handle to the volume. Typically created using CreateFile()
  179. to a device of the format \\.\D:
  180. ForceDismount - If TRUE, will try to force dismount the disk without
  181. prompting the user.
  182. Quiet - If TRUE, will not prompt the user. Can be used to fail
  183. if the volume is already opened without providing the
  184. user an opportunity to force the volume to dismount
  185. Return Value:
  186. TRUE if the volume was locked for exclusive access
  187. FALSE if the volume could not be locked.
  188. --*/
  189. BOOL
  190. SptGetVolumeHandleByDriveLetter(
  191. OUT HANDLE * VolumeHandle,
  192. IN UCHAR DriveLetter
  193. );
  194. BOOL
  195. SptGetDeviceHandleByScsiAddress(
  196. OUT HANDLE * VolumeHandle,
  197. IN SCSI_ADDRESS ScsiAddress
  198. );
  199. BOOL
  200. SptGetDeviceInfo(
  201. IN HANDLE VolumeHandle,
  202. IN PSTORAGE_DEVICE_DESCRIPTOR DeviceDescriptorBuffer,
  203. IN ULONG BufferSize
  204. );
  205. BOOL
  206. SptGetAdapterInfo(
  207. IN HANDLE VolumeHandle,
  208. IN PSTORAGE_ADAPTER_DESCRIPTOR AdapterDescriptorBuffer,
  209. IN ULONG BufferSize
  210. );
  211. BOOL
  212. SptAllocAlignedBuffer(
  213. OUT PVOID * Buffer, // must be free'd with SptFreeAlignedBuffer()
  214. IN ULONG BufferSize,
  215. IN ULONG AlignmentMask // from STORAGE_ADAPTER_DESCRIPTOR
  216. );
  217. BOOL
  218. SptFreeAlignedBuffer(
  219. IN PVOID Buffer // must have been allocated by SptAllocAlignedBuffer()
  220. );
  221. #endif // 0
  222. #if 0
  223. typedef struct _SCSI_ASC_ASCQ_RETURN_VALUES_TEXT {
  224. ULONG Number;
  225. PCHAR Name;
  226. } SCSI_ASC_ASCQ_RETURN_VALUES_TEXT, *PSCSI_ASC_ASCQ_RETURN_VALUES_TEXT;
  227. #define MAKE_IT(name, number) \
  228. { (number), #name }
  229. SCSI_ASC_ASCQ_RETURN_VALUES_TEXT data[] = {
  230. MAKE_IT(NO_ADDITIONAL_SENSE_INFORMATION , 0x0000),
  231. MAKE_IT(FILEMARK_DETECTED , 0x0001),
  232. MAKE_IT(END_OF_PARTITION_OR_MEDIUM_DETECTED , 0x0002),
  233. MAKE_IT(SETMARK_DETECTED , 0x0003),
  234. MAKE_IT(BEGINNING_OF_PARTITION_OR_MEDIUM_DETECTED , 0x0004),
  235. MAKE_IT(END_OF_DATA_DETECTED , 0x0005),
  236. MAKE_IT(PLAY_OPERATION_ABORTED , 0x0006),
  237. MAKE_IT(AUDIO_PLAY_OPERATION_IN_PROGRESS , 0x0011),
  238. MAKE_IT(AUDIO_PLAY_OPERATION_PAUSED , 0x0012),
  239. MAKE_IT(AUDIO_PLAY_OPERATION_SUCCESSFULLY_COMPLETED , 0x0013),
  240. MAKE_IT(AUDIO_PLAY_OPERATION_STOPPED_DUE_TO_ERROR , 0x0014),
  241. MAKE_IT(NO_CURRENT_AUDIO_STATUS_TO_RETURN , 0x0015),
  242. MAKE_IT(OPERATION_IN_PROGRESS , 0x0016),
  243. MAKE_IT(CLEANING_REQUESTED , 0x0017),
  244. MAKE_IT(NO_INDEX_OR_SECTOR_SIGNAL , 0x0100),
  245. MAKE_IT(NO_SEEK_COMPLETE , 0x0200),
  246. MAKE_IT(PERIPHERAL_DEVICE_WRITE_FAULT , 0x0300),
  247. MAKE_IT(NO_WRITE_CURRENT , 0x0301),
  248. MAKE_IT(EXCESSIVE_WRITE_ERRORS , 0x0302),
  249. MAKE_IT(LU_NOT_READY_CAUSE_NOT_REPORTABLE , 0x0400),
  250. MAKE_IT(LU_NOT_READY_BECOMING_READY , 0x0401),
  251. MAKE_IT(LU_NOT_READY_INIT_COMMAND_REQUIRED , 0x0402),
  252. MAKE_IT(LU_NOT_READY_MANUAL_INTERVENTION_REQUIRED , 0x0403),
  253. MAKE_IT(LU_NOT_READY_FORMAT_IN_PROGRESS , 0x0404),
  254. MAKE_IT(LU_NOT_READY_REBUILD_IN_PROGRESS , 0x0405),
  255. MAKE_IT(LU_NOT_READY_RECALCULATION_IN_PROGRESS , 0x0406),
  256. MAKE_IT(LU_NOT_READY_OPERATION_IN_PROGRESS , 0x0407),
  257. MAKE_IT(LU_NOT_READY_LONG_WRITE_IN_PROGRESS , 0x0408),
  258. MAKE_IT(LU_DOES_NOT_RESPOND_TO_SELECTION , 0x0500),
  259. MAKE_IT(NO_REFERENCE_POSITION_FOUND__MEDIUM_MAY_BE_UPSIDE_DOWN , 0x0600),
  260. MAKE_IT(MULTIPLE_PERIPHERAL_DEVICES_SELECTED , 0x0700),
  261. MAKE_IT(LU_COMMUNICATION_FAILURE , 0x0800),
  262. MAKE_IT(LU_COMMUNICATION_TIMEOUT , 0x0801),
  263. MAKE_IT(LU_COMMUNICATION_PARITY_ERROR , 0x0802),
  264. MAKE_IT(LU_COMMUNICATION_CRC_ERROR_UDMA32 , 0x0803),
  265. MAKE_IT(TRACK_FOLLOWING_ERROR , 0x0900),
  266. MAKE_IT(TRACKING_SERVO_FAILURE , 0x0901),
  267. MAKE_IT(FOCUS_SERVO_FAILURE , 0x0902),
  268. MAKE_IT(SPINDLE_SERVO_FAILURE , 0x0903),
  269. MAKE_IT(HEAD_SELECT_FAULT , 0x0904),
  270. MAKE_IT(ERROR_LOG_OVERFLOW , 0x0A00),
  271. MAKE_IT(WARNING , 0x0B00),
  272. MAKE_IT(WARNING_SPECIFIED_TEMPERATURE_EXCEEDED , 0x0B01),
  273. MAKE_IT(WARNING_ENCLOSURE_DEGRADED , 0x0B02),
  274. MAKE_IT(WRITE_ERROR , 0x0C00),
  275. MAKE_IT(WRITE_ERROR__RECOVERED_WITH_AUTO_REALLOCATION , 0x0C01),
  276. MAKE_IT(WRITE_ERROR__AUTO_REALLOCATION_FAILED , 0x0C02),
  277. MAKE_IT(WRITE_ERROR__RECOMMEND_REASSIGNMENT , 0x0C03),
  278. MAKE_IT(COMPRESSION_CHECK_MISCOMPARE_ERROR , 0x0C04),
  279. MAKE_IT(DATA_EXPANSION_OCCURRED_DURING_COMPRESSION , 0x0C05),
  280. MAKE_IT(BLOCK_NOT_COMPRESSABLE , 0x0C06),
  281. MAKE_IT(WRITE_ERROR__RECOVERY_NEEDED , 0x0C07),
  282. MAKE_IT(WRITE_ERROR__RECOVERY_FAILED , 0x0C08),
  283. MAKE_IT(WRITE_ERROR__LOSS_OF_STREAMING , 0x0C09),
  284. MAKE_IT(WRITE_ERROR__PADDING_BLOCKS_ADDED , 0x0C0A),
  285. MAKE_IT(ID_CRC_OR_ECC_ERROR , 0x1000),
  286. MAKE_IT(UNRECOVERED_READ_ERROR , 0x1100),
  287. MAKE_IT(READ_RETRIES_EXHAUSTED , 0x1101),
  288. MAKE_IT(ERROR_TOO_LONG_TO_CORRECT , 0x1102),
  289. MAKE_IT(MULTIPLE_READ_ERRORS , 0x1103),
  290. MAKE_IT(UNRECOVERED_READ_ERROR__AUTO_REALLOCATE_FAILED , 0x1104),
  291. MAKE_IT(LEC_UNCORRECTABLE_ERROR , 0x1105),
  292. MAKE_IT(CIRC_UNCORRECTABLE_ERROR , 0x1106),
  293. MAKE_IT(RESYNCHRONIZATION_ERROR , 0x1107),
  294. MAKE_IT(INCOMPLETE_BLOCK_READ , 0x1108),
  295. MAKE_IT(NO_GAP_FOUND , 0x1109),
  296. MAKE_IT(MISCORRECTED_ERROR , 0x110A),
  297. MAKE_IT(UNRECOVERED_READ_ERROR__RECOMMEND_REASSIGNMENT , 0x110B),
  298. MAKE_IT(UNRECOVERED_READ_ERROR__RECOMMEND_REWRITE_DATA , 0x110C),
  299. MAKE_IT(DECOMPRESSION_CRC_ERROR , 0x110D),
  300. MAKE_IT(CANNOT_DECOMPRESS_USING_DECLARED_ALGORITHM , 0x110E),
  301. MAKE_IT(ERROR_READING_UPC_OR_EAN_NUMBER , 0x110F),
  302. MAKE_IT(ERROR_READING_ISRC_NUMBER , 0x1110),
  303. MAKE_IT(READ_ERROR__LOSS_OF_STREAMING , 0x1111),
  304. MAKE_IT(ADDRESS_MARK_NOT_FOUND_FOR_ID_FIELD , 0x1200),
  305. MAKE_IT(ADDRESS_MARK_NOT_FOUND_FOR_DATA_FIELD , 0x1300),
  306. MAKE_IT(RECORDED_ENTITY_NOT_FOUND , 0x1400),
  307. MAKE_IT(RECORD_NOT_FOUND , 0x1401),
  308. MAKE_IT(FILEMARK_OR_SETMARK_NOT_FOUND , 0x1402),
  309. MAKE_IT(END_OF_DATA_NOT_FOUND , 0x1403),
  310. MAKE_IT(BLOCK_SEQUENCE_ERROR , 0x1404),
  311. MAKE_IT(RECORD_NOT_FOUND__RECOMMEND_REASSIGNMENT , 0x1405),
  312. MAKE_IT(RECORD_NOT_FOUND__DATA_AUTO_REALLOCATED , 0x1406),
  313. MAKE_IT(RANDOM_POSITIONING_ERROR , 0x1500),
  314. MAKE_IT(MECHANICAL_POSITIONING_ERROR , 0x1501),
  315. MAKE_IT(POSITIONING_ERROR_DETECTED_BY_READ_OF_MEDIUM , 0x1502),
  316. MAKE_IT(DATA_SYNCHRONIZATION_MARK_ERROR , 0x1600),
  317. MAKE_IT(DATA_SYNC_ERROR__DATA_REWRITTEN , 0x1601),
  318. MAKE_IT(DATA_SYNC_ERROR__RECOMMEND_REWRITE , 0x1602),
  319. MAKE_IT(DATA_SYNC_ERROR__DATA_AUTO_REALLOCATED , 0x1603),
  320. MAKE_IT(DATA_SYNC_ERROR__RECOMMEND_REASSIGNMENT , 0x1604),
  321. MAKE_IT(RECOVERED_DATA_WITH_NO_ERROR_CORRECTION_APPLIED , 0x1700),
  322. MAKE_IT(RECOVERED_DATA_WITH_RETRIES , 0x1701),
  323. MAKE_IT(RECOVERED_DATA_WITH_POSITIVE_HEAD_OFFSET , 0x1702),
  324. MAKE_IT(RECOVERED_DATA_WITH_NEGATIVE_HEAD_OFFSET , 0x1703),
  325. MAKE_IT(RECOVERED_DATA_WITH_RETRIES_AND_OR_CIRC_APPLIED , 0x1704),
  326. MAKE_IT(RECOVERED_DATA_USING_PREVIOUS_SECTOR_ID , 0x1705),
  327. MAKE_IT(RECOVERED_DATA_WITHOUT_ECC__DATA_AUTO_REALLOCATED , 0x1706),
  328. MAKE_IT(RECOVERED_DATA_WITHOUT_ECC__RECOMMEND_REASSIGNMENT , 0x1707),
  329. MAKE_IT(RECOVERED_DATA_WITHOUT_ECC__RECOMMEND_REWRITE , 0x1708),
  330. MAKE_IT(RECOVERED_DATA_WITHOUT_ECC__DATA_REWRITTEN , 0x1709),
  331. MAKE_IT(RECOVERED_DATA_WITH_ECC_APPLIED , 0x1800),
  332. MAKE_IT(RECOVERED_DATA_WITH_ECC_AND_RETRIES_APPLIED , 0x1801),
  333. MAKE_IT(RECOVERED_DATA__DATA_AUTO_REALLOCATED , 0x1802),
  334. MAKE_IT(RECOVERED_DATA_WITH_CIRC , 0x1803),
  335. MAKE_IT(RECOVERED_DATA_WITH_LEC , 0x1804),
  336. MAKE_IT(RECOVERED_DATA__RECOMMEND_REASSIGNMENT , 0x1805),
  337. MAKE_IT(RECOVERED_DATA__RECOMMEND_REWRITE , 0x1806),
  338. MAKE_IT(RECOVERED_DATA_WITH_ECC__DATA_REWRITTEN , 0x1807),
  339. MAKE_IT(RECOVERED_DATA_WITH_LINKING , 0x1808),
  340. MAKE_IT(DEFECT_LIST_ERROR , 0x1900),
  341. MAKE_IT(DEFECT_LIST_NOT_AVAILABLE , 0x1901),
  342. MAKE_IT(DEFECT_LIST_ERROR_IN_PRIMARY_LIST , 0x1902),
  343. MAKE_IT(DEFECT_LIST_ERROR_IN_GROWN_LIST , 0x1903),
  344. MAKE_IT(PARAMETER_LIST_LENGTH_ERROR , 0x1A00),
  345. MAKE_IT(SYNCHRONOUS_DATA_TRANSFER_ERROR , 0x1B00),
  346. MAKE_IT(DEFECT_LIST_NOT_FOUND , 0x1C00),
  347. MAKE_IT(PRIMARY_DEFECT_LIST_NOT_FOUND , 0x1C01),
  348. MAKE_IT(GROWN_DEFECT_LIST_NOT_FOUND , 0x1C02),
  349. MAKE_IT(MISCOMPARE_DURING_VERIFY_OPERATION , 0x1D00),
  350. MAKE_IT(RECOVERED_ID_WITH_ECC_CORRECTION , 0x1E00),
  351. MAKE_IT(PARTIAL_DEFECT_LIST_TRANSFER , 0x1F00),
  352. MAKE_IT(INVALID_COMMAND_OPERATION_CODE , 0x2000),
  353. MAKE_IT(LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE , 0x2100),
  354. MAKE_IT(INVALID_ELEMENT_ADDRESS , 0x2101),
  355. MAKE_IT(INVALID_ADDRESS_FOR_WRITE , 0x2102),
  356. MAKE_IT(_OBSOLETE__ILLEGAL_FUNCTION , 0x2200),
  357. MAKE_IT(INVALID_FIELD_IN_CDB , 0x2400),
  358. MAKE_IT(LOGICAL_UNIT_NOT_SUPPORTED , 0x2500),
  359. MAKE_IT(INVALID_FIELD_IN_PARAMETER_LIST , 0x2600),
  360. MAKE_IT(PARAMETER_NOT_SUPPORTED , 0x2601),
  361. MAKE_IT(PARAMETER_VALUE_NOT_SUPPORTED , 0x2602),
  362. MAKE_IT(THRESHOLD_PARAMETERS_NOT_SUPPORTED , 0x2603),
  363. MAKE_IT(INVALID_RELEASE_OF_ACTIVE_PERSISTENT_RESERVATION , 0x2604),
  364. MAKE_IT(WRITE_PROTECTED , 0x2700),
  365. MAKE_IT(HARDWARE_WRITE_PROTECTED , 0x2701),
  366. MAKE_IT(LU_SOFTWARE_WRITE_PROTECTED , 0x2702),
  367. MAKE_IT(ASSOCIATED_WRITE_PROTECT , 0x2703),
  368. MAKE_IT(PERSISTENT_WRITE_PROTECT , 0x2704),
  369. MAKE_IT(PERMANENT_WRITE_PROTECT , 0x2705),
  370. MAKE_IT(CONDITIONAL_WRITE_PROTECT , 0x2706),
  371. MAKE_IT(NOT_READY_TO_READY__MEDIUM_MAY_HAVE_CHANGED , 0x2800),
  372. MAKE_IT(IMPORT_OR_EXPORT_ELEMENT_ACCESSED , 0x2801),
  373. MAKE_IT(POWER_ON_RESET_OR_BUS_DEVICE_RESET_OCCURRED , 0x2900),
  374. MAKE_IT(POWER_ON_OCCURRED , 0x2901),
  375. MAKE_IT(SCSI_BUS_RESET_OCCURRED , 0x2902),
  376. MAKE_IT(BUS_DEVICE_RESET_FUNCTION_OCCURRED , 0x2903),
  377. MAKE_IT(DEVICE_INTERNAL_RESET , 0x2904),
  378. MAKE_IT(PARAMETERS_CHANGED , 0x2A00),
  379. MAKE_IT(MODE_PARAMETERS_CHANGED , 0x2A01),
  380. MAKE_IT(LOG_PARAMETERS_CHANGED , 0x2A02),
  381. MAKE_IT(RESERVATIONS_PREEMPTED , 0x2A03),
  382. MAKE_IT(COPY_CANNOT_EXECUTE_SINCE_HOST_CANNOT_DISCONNECT , 0x2B00),
  383. MAKE_IT(COMMAND_SEQUENCE_ERROR , 0x2C00),
  384. MAKE_IT(TOO_MANY_WINDOWS_SPECIFIED , 0x2C01),
  385. MAKE_IT(INVALID_COMBINATION_OF_WINDOWS_SPECIFIED , 0x2C02),
  386. MAKE_IT(CURRENT_PROGRAM_AREA_IS_NOT_EMPTY , 0x2C03),
  387. MAKE_IT(CURRENT_PROGRAM_AREA_IS_EMPTY , 0x2C04),
  388. MAKE_IT(PERSISTENT_PREVENT_CONFLICT , 0x2C05),
  389. MAKE_IT(OVERWRITE_ERROR_ON_UPDATE_IN_PLACE , 0x2D00),
  390. MAKE_IT(INSUFFICIENT_TIME_FOR_OPERATION , 0x2E00),
  391. MAKE_IT(COMMANDS_CLEARED_BY_ANOTHER_INITIATOR , 0x2F00),
  392. MAKE_IT(INCOMPATIBLE_MEDIUM_INSTALLED , 0x3000),
  393. MAKE_IT(CANNOT_READ_MEDIUM__UNKNOWN_FORMAT , 0x3001),
  394. MAKE_IT(CANNOT_READ_MEDIUM__INCOMPATIBLE_FORMAT , 0x3002),
  395. MAKE_IT(CANNOT_READ_MEDIUM__CLEANING_CARTRIDGE_INSTALLED , 0x3003),
  396. MAKE_IT(CANNOT_WRITE_MEDIUM__UNKNOWN_FORMAT , 0x3004),
  397. MAKE_IT(CANNOT_WRITE_MEDIUM__INCOMPATIBLE_FORMAT , 0x3005),
  398. MAKE_IT(CANNOT_FORMAT_MEDIUM__INCOMPATIBLE_MEDIUM , 0x3006),
  399. MAKE_IT(CLEANING_FAILURE , 0x3007),
  400. MAKE_IT(CANNOT_WRITE__APPLICATION_CODE_MISMATCH , 0x3008),
  401. MAKE_IT(CURRENT_SESSION_NOT_FIXATED_FOR_APPEND , 0x3009),
  402. MAKE_IT(MEDIUM_FORMAT_CORRUPTED , 0x3100),
  403. MAKE_IT(FORMAT_COMMAND_FAILED , 0x3101),
  404. MAKE_IT(ZONED_FORMATTING_FAILED_DUE_TO_SPARE_LINKING , 0x3102),
  405. MAKE_IT(NO_DEFECT_SPARE_LOCATION_AVAILABLE , 0x3200),
  406. MAKE_IT(DEFECT_LIST_UPDATE_FAILURE , 0x3201),
  407. MAKE_IT(TAPE_LENGTH_ERROR , 0x3300),
  408. MAKE_IT(ENCLOSURE_FAILURE , 0x3400),
  409. MAKE_IT(ENCLOSURE_SERVICES_FAILURE , 0x3500),
  410. MAKE_IT(UNSUPPORTED_ENCLOSURE_FUNCTION , 0x3501),
  411. MAKE_IT(ENCLOSURE_SERVICES_UNAVAILABLE , 0x3502),
  412. MAKE_IT(ENCLOSURE_SERVICES_TRANSFER_FAILURE , 0x3503),
  413. MAKE_IT(ENCLOSURE_SERVICES_TRANSFER_REFUSED , 0x3504),
  414. MAKE_IT(RIBBON_INK_OR_TONER_FAILURE , 0x3600),
  415. MAKE_IT(ROUNDED_PARAMETER , 0x3700),
  416. MAKE_IT(SAVING_PARAMETERS_NOT_SUPPORTED , 0x3900),
  417. MAKE_IT(MEDIUM_NOT_PRESENT , 0x3A00),
  418. MAKE_IT(MEDIUM_NOT_PRESENT__TRAY_CLOSED , 0x3A01),
  419. MAKE_IT(MEDIUM_NOT_PRESENT__TRAY_OPEN , 0x3A02),
  420. MAKE_IT(SEQUENTIAL_POSITIONING_ERROR , 0x3B00),
  421. MAKE_IT(TAPE_POSITION_ERROR_AT_BEGINNING_OF_MEDIUM , 0x3B01),
  422. MAKE_IT(TAPE_POSITION_ERROR_AT_END_OF_MEDIUM , 0x3B02),
  423. MAKE_IT(TAPE_OR_ELECTRONIC_VERTICAL_FORMS_UNIT_NOT_READY , 0x3B03),
  424. MAKE_IT(SLEW_FAILURE , 0x3B04),
  425. MAKE_IT(PAPER_JAM , 0x3B05),
  426. MAKE_IT(FAILED_TO_SENSE_TOP_OF_FORM , 0x3B06),
  427. MAKE_IT(FAILED_TO_SENSE_BOTTOM_OF_FORM , 0x3B07),
  428. MAKE_IT(REPOSITION_ERROR , 0x3B08),
  429. MAKE_IT(READ_PAST_END_OF_MEDIUM , 0x3B09),
  430. MAKE_IT(READ_PAST_BEGINNING_OF_MEDIUM , 0x3B0A),
  431. MAKE_IT(POSITION_PAST_END_OF_MEDIUM , 0x3B0B),
  432. MAKE_IT(POSITION_PAST_BEGINNING_OF_MEDIUM , 0x3B0C),
  433. MAKE_IT(MEDIUM_DESTINATION_ELEMENT_FULL , 0x3B0D),
  434. MAKE_IT(MEDIUM_SOURCE_ELEMENT_FULL , 0x3B0E),
  435. MAKE_IT(END_OF_MEDIUM_REACHED , 0x3B0F),
  436. MAKE_IT(MEDIUM_MAGAZINE_NOT_ACCESSIBLE , 0x3B11),
  437. MAKE_IT(MEDIUM_MAGAZINE_REMOVED , 0x3B12),
  438. MAKE_IT(MEDIUM_MAGAZINE_INSERTED , 0x3B13),
  439. MAKE_IT(MEDIUM_MAGAZINE_LOCKED , 0x3B14),
  440. MAKE_IT(MEDIUM_MAGAZINE_UNLOCKED , 0x3B15),
  441. MAKE_IT(MECHANICAL_POSITIONING_OR_CHANGER_ERROR , 0x3B16),
  442. MAKE_IT(INVALID_BITS_IN_IDENTIFY_MESSAGE , 0x3D00),
  443. MAKE_IT(LU_HAS_NOT_SELF_CONFIGURED_YET , 0x3E00),
  444. MAKE_IT(LU_FAILURE , 0x3E01),
  445. MAKE_IT(TIMEOUT_ON_LU , 0x3E02),
  446. MAKE_IT(TARGET_OPERATING_CONDITIONS_HAVE_CHANGED , 0x3F00),
  447. MAKE_IT(MICROCODE_HAS_BEEN_CHANGED , 0x3F01),
  448. MAKE_IT(CHANGED_OPERATING_DEFINITION , 0x3F02),
  449. MAKE_IT(INQUIRY_DATA_HAS_CHANGED , 0x3F03),
  450. MAKE_IT(_OBSOLETE__RAM_FAILURE , 0x4000),
  451. // ALL 40/nn ARE VENDOR-UNIQUE NOTIFICATIONS OF FAILURE ON COMPONENT nn
  452. MAKE_IT(_OBSOLETE__DATA_PATH_FAILURE , 0x4100),
  453. MAKE_IT(_OSBOLETE__POWER_ON_OR_SELF_TEST_FAILURE , 0x4200),
  454. MAKE_IT(MESSAGE_ERROR , 0x4300),
  455. MAKE_IT(INTERNAL_TARGET_FAILURE , 0x4400),
  456. MAKE_IT(SELECT_OR_RESELECT_FAILURE , 0x4500),
  457. MAKE_IT(UNSUCCESSFUL_SOFT_RESET , 0x4600),
  458. MAKE_IT(SCSI_PARITY_ERROR , 0x4700),
  459. MAKE_IT(INITIATOR_DETECTED_ERROR_MESSAGE_RECEIVED , 0x4800),
  460. MAKE_IT(INVALID_MESSAGE_ERROR , 0x4900),
  461. MAKE_IT(COMMAND_PHASE_ERROR , 0x4A00),
  462. MAKE_IT(DATA_PHASE_ERROR , 0x4B00),
  463. MAKE_IT(LOGICAL_UNIT_FAILED_SELF_CONFIGURATION , 0x4C00),
  464. // TAGGED_OVERLAPPED_COMMANDS
  465. MAKE_IT(OVERLAPPED_COMMANDS_ATTEMPTED , 0x4E00),
  466. MAKE_IT(WRITE_APPEND_ERROR , 0x5000),
  467. MAKE_IT(WRITE_APPEND_POSITION_ERROR , 0x5001),
  468. MAKE_IT(POSITION_ERROR_RELATED_TO_TIMING , 0x5002),
  469. MAKE_IT(ERASE_FAILURE , 0x5100),
  470. MAKE_IT(ERASE_FAILURE__INCOMPLETE_ERASE_DETECTED , 0x5101),
  471. MAKE_IT(CARTRIDGE_FAULT , 0x5200),
  472. MAKE_IT(MEDIA_LOAD_OR_EJECT_FAILURE , 0x5300),
  473. MAKE_IT(UNLOAD_TAPE_FAILURE , 0x5301),
  474. MAKE_IT(MEDIUM_REMOVAL_PREVENTED , 0x5302),
  475. MAKE_IT(SCSI_TO_HOST_SYSTEM_INTERFACE_FAILURE , 0x5400),
  476. MAKE_IT(SYSTEM_RESOURCE_FAILURE , 0x5500),
  477. MAKE_IT(SYSTEM_BUFFER_FULL , 0x5501),
  478. MAKE_IT(UNABLE_TO_RECOVER_TABLE_OF_CONTENTS , 0x5700),
  479. MAKE_IT(GENERATION_DOES_NOT_EXIST , 0x5800),
  480. MAKE_IT(UPDATED_BLOCK_READ , 0x5900),
  481. MAKE_IT(OPERATOR_REQUEST_OR_STATE_CHANGE_INPUT , 0x5A00),
  482. MAKE_IT(OPERATOR_MEDIUM_REMOVAL_REQUEST , 0x5A01),
  483. MAKE_IT(OPERATOR_SELECTED_WRITE_PROTECT , 0x5A02),
  484. MAKE_IT(OPERATOR_SELECTED_WRITE_PERMIT , 0x5A03),
  485. MAKE_IT(LOG_EXCEPTION , 0x5B00),
  486. MAKE_IT(THRESHOLD_CONDITION_MET , 0x5B01),
  487. MAKE_IT(LOG_COUNTER_AT_MAXIMUM , 0x5B02),
  488. MAKE_IT(LOG_LIST_CODES_EXHAUSTED , 0x5B03),
  489. MAKE_IT(RPL_STATUS_CHANGE , 0x5C00),
  490. MAKE_IT(SPINDLES_SYNCHRONIZED , 0x5C01),
  491. MAKE_IT(SPINDLES_NOT_SYNCHRONIZED , 0x5C02),
  492. MAKE_IT(FAILURE_PREDICTION_THRESHOLD_EXCEEDED__LU_FAILURE , 0x5D00),
  493. MAKE_IT(FAILURE_PREDICTION_THRESHOLD_EXCEEDED__MEDIA_FAILURE , 0x5D01),
  494. MAKE_IT(FAILURE_PREDICTION_THRESHOLD_EXCEEDED__SPARE_AREA_EXHAUSTION , 0x5D03),
  495. MAKE_IT(FAILURE_PREDICTION_THRESHOLD_EXCEEDED__TEST_VALUE , 0x5DFF),
  496. MAKE_IT(LOW_POWER_CONDITION_ON , 0x5E00),
  497. MAKE_IT(IDLE_CONDITION_ACTIVATED_BY_TIMER , 0x5E01),
  498. MAKE_IT(STANDBY_CONDITION_ACTIVATED_BY_TIMER , 0x5E02),
  499. MAKE_IT(IDLE_CONDITION_ACTIVATED_BY_COMMAND , 0x5E03),
  500. MAKE_IT(STANDBY_CONDITION_ACTIVATED_BY_COMMAND , 0x5E04),
  501. MAKE_IT(LAMP_FAILURE , 0x6000),
  502. MAKE_IT(VIDEO_ACQUISITION_ERROR , 0x6100),
  503. MAKE_IT(UNABLE_TO_ACQUIRE_VIDEO , 0x6101),
  504. MAKE_IT(OUT_OF_FOCUS , 0x6102),
  505. MAKE_IT(SCAN_HEAD_POSITIONING_ERROR , 0x6200),
  506. MAKE_IT(END_OF_USER_AREA_ENCOUNTERED_ON_THIS_TRACK , 0x6300),
  507. MAKE_IT(PACKET_DOES_NOT_FIT_IN_AVAILABLE_SPACE , 0x6301),
  508. MAKE_IT(ILLEGAL_MODE_FOR_THIS_TRACK , 0x6400),
  509. MAKE_IT(INVALID_PACKET_SIZE , 0x6401),
  510. MAKE_IT(VOLTAGE_FAULT , 0x6500),
  511. MAKE_IT(AUTOMATIC_DOCUMENT_FEEDER_COVER_UP , 0x6600),
  512. MAKE_IT(AUTOMATIC_DOCUMENT_FEEDER_LIFT_UP , 0x6601),
  513. MAKE_IT(DOCUMENT_JAM_IN_AUTOMATIC_DOCUMENT_FEEDER , 0x6602),
  514. MAKE_IT(DOCUMENT_MISS_FEED_AUTOMATIC_IN_DOCUMENT_FEEDER , 0x6603),
  515. MAKE_IT(CONFIGURATION_FAILURE , 0x6700),
  516. MAKE_IT(CONFIGURATION_OF_INCAPABLE_LOGICAL_UNITS_FAILED , 0x6701),
  517. MAKE_IT(ADD_LOGICAL_UNIT_FAILED , 0x6702),
  518. MAKE_IT(MODIFICATION_OF_LOGICAL_UNIT_FAILED , 0x6703),
  519. MAKE_IT(EXCHANGE_OF_LOGICAL_UNIT_FAILED , 0x6704),
  520. MAKE_IT(REMOVE_OF_LOGICAL_UNIT_FAILED , 0x6705),
  521. MAKE_IT(ATTACHMENT_OF_LOGICAL_UNIT_FAILED , 0x6706),
  522. MAKE_IT(CREATION_OF_LOGICAL_UNIT_FAILED , 0x6707),
  523. MAKE_IT(LOGICAL_UNIT_NOT_CONFIGURED , 0x6800),
  524. MAKE_IT(DATA_LOSS_ON_LOGICAL_UNIT , 0x6900),
  525. MAKE_IT(MULTIPLE_LOGICAL_UNIT_FAILURES , 0x6901),
  526. MAKE_IT(A_PARITY__DATA_MISMATCH , 0x6902),
  527. MAKE_IT(INFORMATIONAL__REFER_TO_LOG , 0x6A00),
  528. MAKE_IT(STATE_CHANGE_HAS_OCCURRED , 0x6B00),
  529. MAKE_IT(REDUNDANCY_LEVEL_GOT_BETTER , 0x6B01),
  530. MAKE_IT(REDUNDANCY_LEVEL_GOT_WORSE , 0x6B02),
  531. MAKE_IT(REBUILD_FAILURE_OCCURRED , 0x6C00),
  532. MAKE_IT(RECALCULATE_FAILURE_OCCURRED , 0x6D00),
  533. MAKE_IT(COMMAND_TO_LOGICAL_UNIT_FAILED , 0x6E00),
  534. MAKE_IT(COPY_PROTECTION_KEY_EXCHANGE_FAILURE__AUTHENTICATION_FAILURE , 0x6F00),
  535. MAKE_IT(COPY_PROTECTION_KEY_EXCHANGE_FAILURE__KEY_NOT_PRESENT , 0x6F01),
  536. MAKE_IT(COPY_PROTECTION_KEY_EXCHANGE_FAILURE__KEY_NOT_ESTABLISHED , 0x6F02),
  537. MAKE_IT(READ_OF_SCRAMBLED_SECTOR_WITHOUT_AUTHENTICATION , 0x6F03),
  538. MAKE_IT(MEDIA_REGION_CODE_IS_MISMATCHED_TO_LOGICAL_UNIT_REGION , 0x6F04),
  539. MAKE_IT(DRIVE_REGION_MUST_BE_PERMANENT_REGION_RESET_COUNT_ERROR , 0x6F05),
  540. // DECOMPRESSION EXCEPTION SHORT ALGORITHM ID OF NN = 0x70NN,
  541. MAKE_IT(DECOMPRESSION_EXCEPTION_LONG_ALGORITHM_ID , 0x7100),
  542. MAKE_IT(SESSION_FIXATION_ERROR , 0x7200),
  543. MAKE_IT(SESSION_FIXATION_ERROR_WRITING_LEAD_IN , 0x7201),
  544. MAKE_IT(SESSION_FIXATION_ERROR_WRITING_LEAD_OUT , 0x7202),
  545. MAKE_IT(SESSION_FIXATION_ERROR__INCOMPLETE_TRACK_IN_SESSION , 0x7203),
  546. MAKE_IT(EMPTY_OR_PARTIALLY_WRITTEN_RESERVED_TRACK , 0x7204),
  547. MAKE_IT(NO_MORE_RZONE_RESERVATIONS_ARE_ALLOWED , 0x7205),
  548. MAKE_IT(CD_CONTROL_ERROR , 0x7300),
  549. MAKE_IT(POWER_CALIBRATION_AREA_ALMOST_FULL , 0x7301),
  550. MAKE_IT(POWER_CALIBRATION_AREA_IS_FULL , 0x7302),
  551. MAKE_IT(POWER_CALIBRATION_AREA_ERROR , 0x7303),
  552. MAKE_IT(PROGRAM_MEMORY_AREA_RMA_UPDATE_FAILURE , 0x7304),
  553. MAKE_IT(PROGRAM_MEMORY_AREA_RMA_IS_FULL , 0x7305),
  554. MAKE_IT(PROGRAM_MEMORY_AREA_RMA_IS_ALMOST_FULL , 0x7306),
  555. };
  556. #undef MAKE_IT
  557. #define MAKE_IT(name, number) \
  558. SPTLIB_##name = number
  559. typedef enum _SCSI_ASC_ASCQ_RETURN_VALUES {
  560. MAKE_IT(NO_ADDITIONAL_SENSE_INFORMATION , 0x0000),
  561. MAKE_IT(FILEMARK_DETECTED , 0x0001),
  562. MAKE_IT(END_OF_PARTITION_OR_MEDIUM_DETECTED , 0x0002),
  563. MAKE_IT(SETMARK_DETECTED , 0x0003),
  564. MAKE_IT(BEGINNING_OF_PARTITION_OR_MEDIUM_DETECTED , 0x0004),
  565. MAKE_IT(END_OF_DATA_DETECTED , 0x0005),
  566. MAKE_IT(PLAY_OPERATION_ABORTED , 0x0006),
  567. MAKE_IT(AUDIO_PLAY_OPERATION_IN_PROGRESS , 0x0011),
  568. MAKE_IT(AUDIO_PLAY_OPERATION_PAUSED , 0x0012),
  569. MAKE_IT(AUDIO_PLAY_OPERATION_SUCCESSFULLY_COMPLETED , 0x0013),
  570. MAKE_IT(AUDIO_PLAY_OPERATION_STOPPED_DUE_TO_ERROR , 0x0014),
  571. MAKE_IT(NO_CURRENT_AUDIO_STATUS_TO_RETURN , 0x0015),
  572. MAKE_IT(OPERATION_IN_PROGRESS , 0x0016),
  573. MAKE_IT(CLEANING_REQUESTED , 0x0017),
  574. MAKE_IT(NO_INDEX_OR_SECTOR_SIGNAL , 0x0100),
  575. MAKE_IT(NO_SEEK_COMPLETE , 0x0200),
  576. MAKE_IT(PERIPHERAL_DEVICE_WRITE_FAULT , 0x0300),
  577. MAKE_IT(NO_WRITE_CURRENT , 0x0301),
  578. MAKE_IT(EXCESSIVE_WRITE_ERRORS , 0x0302),
  579. MAKE_IT(LU_NOT_READY_CAUSE_NOT_REPORTABLE , 0x0400),
  580. MAKE_IT(LU_NOT_READY_BECOMING_READY , 0x0401),
  581. MAKE_IT(LU_NOT_READY_INIT_COMMAND_REQUIRED , 0x0402),
  582. MAKE_IT(LU_NOT_READY_MANUAL_INTERVENTION_REQUIRED , 0x0403),
  583. MAKE_IT(LU_NOT_READY_FORMAT_IN_PROGRESS , 0x0404),
  584. MAKE_IT(LU_NOT_READY_REBUILD_IN_PROGRESS , 0x0405),
  585. MAKE_IT(LU_NOT_READY_RECALCULATION_IN_PROGRESS , 0x0406),
  586. MAKE_IT(LU_NOT_READY_OPERATION_IN_PROGRESS , 0x0407),
  587. MAKE_IT(LU_NOT_READY_LONG_WRITE_IN_PROGRESS , 0x0408),
  588. MAKE_IT(LU_DOES_NOT_RESPOND_TO_SELECTION , 0x0500),
  589. MAKE_IT(NO_REFERENCE_POSITION_FOUND__MEDIUM_MAY_BE_UPSIDE_DOWN , 0x0600),
  590. MAKE_IT(MULTIPLE_PERIPHERAL_DEVICES_SELECTED , 0x0700),
  591. MAKE_IT(LU_COMMUNICATION_FAILURE , 0x0800),
  592. MAKE_IT(LU_COMMUNICATION_TIMEOUT , 0x0801),
  593. MAKE_IT(LU_COMMUNICATION_PARITY_ERROR , 0x0802),
  594. MAKE_IT(LU_COMMUNICATION_CRC_ERROR_UDMA32 , 0x0803),
  595. MAKE_IT(TRACK_FOLLOWING_ERROR , 0x0900),
  596. MAKE_IT(TRACKING_SERVO_FAILURE , 0x0901),
  597. MAKE_IT(FOCUS_SERVO_FAILURE , 0x0902),
  598. MAKE_IT(SPINDLE_SERVO_FAILURE , 0x0903),
  599. MAKE_IT(HEAD_SELECT_FAULT , 0x0904),
  600. MAKE_IT(ERROR_LOG_OVERFLOW , 0x0A00),
  601. MAKE_IT(WARNING , 0x0B00),
  602. MAKE_IT(WARNING_SPECIFIED_TEMPERATURE_EXCEEDED , 0x0B01),
  603. MAKE_IT(WARNING_ENCLOSURE_DEGRADED , 0x0B02),
  604. MAKE_IT(WRITE_ERROR , 0x0C00),
  605. MAKE_IT(WRITE_ERROR__RECOVERED_WITH_AUTO_REALLOCATION , 0x0C01),
  606. MAKE_IT(WRITE_ERROR__AUTO_REALLOCATION_FAILED , 0x0C02),
  607. MAKE_IT(WRITE_ERROR__RECOMMEND_REASSIGNMENT , 0x0C03),
  608. MAKE_IT(COMPRESSION_CHECK_MISCOMPARE_ERROR , 0x0C04),
  609. MAKE_IT(DATA_EXPANSION_OCCURRED_DURING_COMPRESSION , 0x0C05),
  610. MAKE_IT(BLOCK_NOT_COMPRESSABLE , 0x0C06),
  611. MAKE_IT(WRITE_ERROR__RECOVERY_NEEDED , 0x0C07),
  612. MAKE_IT(WRITE_ERROR__RECOVERY_FAILED , 0x0C08),
  613. MAKE_IT(WRITE_ERROR__LOSS_OF_STREAMING , 0x0C09),
  614. MAKE_IT(WRITE_ERROR__PADDING_BLOCKS_ADDED , 0x0C0A),
  615. MAKE_IT(ID_CRC_OR_ECC_ERROR , 0x1000),
  616. MAKE_IT(UNRECOVERED_READ_ERROR , 0x1100),
  617. MAKE_IT(READ_RETRIES_EXHAUSTED , 0x1101),
  618. MAKE_IT(ERROR_TOO_LONG_TO_CORRECT , 0x1102),
  619. MAKE_IT(MULTIPLE_READ_ERRORS , 0x1103),
  620. MAKE_IT(UNRECOVERED_READ_ERROR__AUTO_REALLOCATE_FAILED , 0x1104),
  621. MAKE_IT(LEC_UNCORRECTABLE_ERROR , 0x1105),
  622. MAKE_IT(CIRC_UNCORRECTABLE_ERROR , 0x1106),
  623. MAKE_IT(RESYNCHRONIZATION_ERROR , 0x1107),
  624. MAKE_IT(INCOMPLETE_BLOCK_READ , 0x1108),
  625. MAKE_IT(NO_GAP_FOUND , 0x1109),
  626. MAKE_IT(MISCORRECTED_ERROR , 0x110A),
  627. MAKE_IT(UNRECOVERED_READ_ERROR__RECOMMEND_REASSIGNMENT , 0x110B),
  628. MAKE_IT(UNRECOVERED_READ_ERROR__RECOMMEND_REWRITE_DATA , 0x110C),
  629. MAKE_IT(DECOMPRESSION_CRC_ERROR , 0x110D),
  630. MAKE_IT(CANNOT_DECOMPRESS_USING_DECLARED_ALGORITHM , 0x110E),
  631. MAKE_IT(ERROR_READING_UPC_OR_EAN_NUMBER , 0x110F),
  632. MAKE_IT(ERROR_READING_ISRC_NUMBER , 0x1110),
  633. MAKE_IT(READ_ERROR__LOSS_OF_STREAMING , 0x1111),
  634. MAKE_IT(ADDRESS_MARK_NOT_FOUND_FOR_ID_FIELD , 0x1200),
  635. MAKE_IT(ADDRESS_MARK_NOT_FOUND_FOR_DATA_FIELD , 0x1300),
  636. MAKE_IT(RECORDED_ENTITY_NOT_FOUND , 0x1400),
  637. MAKE_IT(RECORD_NOT_FOUND , 0x1401),
  638. MAKE_IT(FILEMARK_OR_SETMARK_NOT_FOUND , 0x1402),
  639. MAKE_IT(END_OF_DATA_NOT_FOUND , 0x1403),
  640. MAKE_IT(BLOCK_SEQUENCE_ERROR , 0x1404),
  641. MAKE_IT(RECORD_NOT_FOUND__RECOMMEND_REASSIGNMENT , 0x1405),
  642. MAKE_IT(RECORD_NOT_FOUND__DATA_AUTO_REALLOCATED , 0x1406),
  643. MAKE_IT(RANDOM_POSITIONING_ERROR , 0x1500),
  644. MAKE_IT(MECHANICAL_POSITIONING_ERROR , 0x1501),
  645. MAKE_IT(POSITIONING_ERROR_DETECTED_BY_READ_OF_MEDIUM , 0x1502),
  646. MAKE_IT(DATA_SYNCHRONIZATION_MARK_ERROR , 0x1600),
  647. MAKE_IT(DATA_SYNC_ERROR__DATA_REWRITTEN , 0x1601),
  648. MAKE_IT(DATA_SYNC_ERROR__RECOMMEND_REWRITE , 0x1602),
  649. MAKE_IT(DATA_SYNC_ERROR__DATA_AUTO_REALLOCATED , 0x1603),
  650. MAKE_IT(DATA_SYNC_ERROR__RECOMMEND_REASSIGNMENT , 0x1604),
  651. MAKE_IT(RECOVERED_DATA_WITH_NO_ERROR_CORRECTION_APPLIED , 0x1700),
  652. MAKE_IT(RECOVERED_DATA_WITH_RETRIES , 0x1701),
  653. MAKE_IT(RECOVERED_DATA_WITH_POSITIVE_HEAD_OFFSET , 0x1702),
  654. MAKE_IT(RECOVERED_DATA_WITH_NEGATIVE_HEAD_OFFSET , 0x1703),
  655. MAKE_IT(RECOVERED_DATA_WITH_RETRIES_AND_OR_CIRC_APPLIED , 0x1704),
  656. MAKE_IT(RECOVERED_DATA_USING_PREVIOUS_SECTOR_ID , 0x1705),
  657. MAKE_IT(RECOVERED_DATA_WITHOUT_ECC__DATA_AUTO_REALLOCATED , 0x1706),
  658. MAKE_IT(RECOVERED_DATA_WITHOUT_ECC__RECOMMEND_REASSIGNMENT , 0x1707),
  659. MAKE_IT(RECOVERED_DATA_WITHOUT_ECC__RECOMMEND_REWRITE , 0x1708),
  660. MAKE_IT(RECOVERED_DATA_WITHOUT_ECC__DATA_REWRITTEN , 0x1709),
  661. MAKE_IT(RECOVERED_DATA_WITH_ECC_APPLIED , 0x1800),
  662. MAKE_IT(RECOVERED_DATA_WITH_ECC_AND_RETRIES_APPLIED , 0x1801),
  663. MAKE_IT(RECOVERED_DATA__DATA_AUTO_REALLOCATED , 0x1802),
  664. MAKE_IT(RECOVERED_DATA_WITH_CIRC , 0x1803),
  665. MAKE_IT(RECOVERED_DATA_WITH_LEC , 0x1804),
  666. MAKE_IT(RECOVERED_DATA__RECOMMEND_REASSIGNMENT , 0x1805),
  667. MAKE_IT(RECOVERED_DATA__RECOMMEND_REWRITE , 0x1806),
  668. MAKE_IT(RECOVERED_DATA_WITH_ECC__DATA_REWRITTEN , 0x1807),
  669. MAKE_IT(RECOVERED_DATA_WITH_LINKING , 0x1808),
  670. MAKE_IT(DEFECT_LIST_ERROR , 0x1900),
  671. MAKE_IT(DEFECT_LIST_NOT_AVAILABLE , 0x1901),
  672. MAKE_IT(DEFECT_LIST_ERROR_IN_PRIMARY_LIST , 0x1902),
  673. MAKE_IT(DEFECT_LIST_ERROR_IN_GROWN_LIST , 0x1903),
  674. MAKE_IT(PARAMETER_LIST_LENGTH_ERROR , 0x1A00),
  675. MAKE_IT(SYNCHRONOUS_DATA_TRANSFER_ERROR , 0x1B00),
  676. MAKE_IT(DEFECT_LIST_NOT_FOUND , 0x1C00),
  677. MAKE_IT(PRIMARY_DEFECT_LIST_NOT_FOUND , 0x1C01),
  678. MAKE_IT(GROWN_DEFECT_LIST_NOT_FOUND , 0x1C02),
  679. MAKE_IT(MISCOMPARE_DURING_VERIFY_OPERATION , 0x1D00),
  680. MAKE_IT(RECOVERED_ID_WITH_ECC_CORRECTION , 0x1E00),
  681. MAKE_IT(PARTIAL_DEFECT_LIST_TRANSFER , 0x1F00),
  682. MAKE_IT(INVALID_COMMAND_OPERATION_CODE , 0x2000),
  683. MAKE_IT(LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE , 0x2100),
  684. MAKE_IT(INVALID_ELEMENT_ADDRESS , 0x2101),
  685. MAKE_IT(INVALID_ADDRESS_FOR_WRITE , 0x2102),
  686. MAKE_IT(_OBSOLETE__ILLEGAL_FUNCTION , 0x2200),
  687. MAKE_IT(INVALID_FIELD_IN_CDB , 0x2400),
  688. MAKE_IT(LOGICAL_UNIT_NOT_SUPPORTED , 0x2500),
  689. MAKE_IT(INVALID_FIELD_IN_PARAMETER_LIST , 0x2600),
  690. MAKE_IT(PARAMETER_NOT_SUPPORTED , 0x2601),
  691. MAKE_IT(PARAMETER_VALUE_NOT_SUPPORTED , 0x2602),
  692. MAKE_IT(THRESHOLD_PARAMETERS_NOT_SUPPORTED , 0x2603),
  693. MAKE_IT(INVALID_RELEASE_OF_ACTIVE_PERSISTENT_RESERVATION , 0x2604),
  694. MAKE_IT(WRITE_PROTECTED , 0x2700),
  695. MAKE_IT(HARDWARE_WRITE_PROTECTED , 0x2701),
  696. MAKE_IT(LU_SOFTWARE_WRITE_PROTECTED , 0x2702),
  697. MAKE_IT(ASSOCIATED_WRITE_PROTECT , 0x2703),
  698. MAKE_IT(PERSISTENT_WRITE_PROTECT , 0x2704),
  699. MAKE_IT(PERMANENT_WRITE_PROTECT , 0x2705),
  700. MAKE_IT(CONDITIONAL_WRITE_PROTECT , 0x2706),
  701. MAKE_IT(NOT_READY_TO_READY__MEDIUM_MAY_HAVE_CHANGED , 0x2800),
  702. MAKE_IT(IMPORT_OR_EXPORT_ELEMENT_ACCESSED , 0x2801),
  703. MAKE_IT(POWER_ON_RESET_OR_BUS_DEVICE_RESET_OCCURRED , 0x2900),
  704. MAKE_IT(POWER_ON_OCCURRED , 0x2901),
  705. MAKE_IT(SCSI_BUS_RESET_OCCURRED , 0x2902),
  706. MAKE_IT(BUS_DEVICE_RESET_FUNCTION_OCCURRED , 0x2903),
  707. MAKE_IT(DEVICE_INTERNAL_RESET , 0x2904),
  708. MAKE_IT(PARAMETERS_CHANGED , 0x2A00),
  709. MAKE_IT(MODE_PARAMETERS_CHANGED , 0x2A01),
  710. MAKE_IT(LOG_PARAMETERS_CHANGED , 0x2A02),
  711. MAKE_IT(RESERVATIONS_PREEMPTED , 0x2A03),
  712. MAKE_IT(COPY_CANNOT_EXECUTE_SINCE_HOST_CANNOT_DISCONNECT , 0x2B00),
  713. MAKE_IT(COMMAND_SEQUENCE_ERROR , 0x2C00),
  714. MAKE_IT(TOO_MANY_WINDOWS_SPECIFIED , 0x2C01),
  715. MAKE_IT(INVALID_COMBINATION_OF_WINDOWS_SPECIFIED , 0x2C02),
  716. MAKE_IT(CURRENT_PROGRAM_AREA_IS_NOT_EMPTY , 0x2C03),
  717. MAKE_IT(CURRENT_PROGRAM_AREA_IS_EMPTY , 0x2C04),
  718. MAKE_IT(PERSISTENT_PREVENT_CONFLICT , 0x2C05),
  719. MAKE_IT(OVERWRITE_ERROR_ON_UPDATE_IN_PLACE , 0x2D00),
  720. MAKE_IT(INSUFFICIENT_TIME_FOR_OPERATION , 0x2E00),
  721. MAKE_IT(COMMANDS_CLEARED_BY_ANOTHER_INITIATOR , 0x2F00),
  722. MAKE_IT(INCOMPATIBLE_MEDIUM_INSTALLED , 0x3000),
  723. MAKE_IT(CANNOT_READ_MEDIUM__UNKNOWN_FORMAT , 0x3001),
  724. MAKE_IT(CANNOT_READ_MEDIUM__INCOMPATIBLE_FORMAT , 0x3002),
  725. MAKE_IT(CANNOT_READ_MEDIUM__CLEANING_CARTRIDGE_INSTALLED , 0x3003),
  726. MAKE_IT(CANNOT_WRITE_MEDIUM__UNKNOWN_FORMAT , 0x3004),
  727. MAKE_IT(CANNOT_WRITE_MEDIUM__INCOMPATIBLE_FORMAT , 0x3005),
  728. MAKE_IT(CANNOT_FORMAT_MEDIUM__INCOMPATIBLE_MEDIUM , 0x3006),
  729. MAKE_IT(CLEANING_FAILURE , 0x3007),
  730. MAKE_IT(CANNOT_WRITE__APPLICATION_CODE_MISMATCH , 0x3008),
  731. MAKE_IT(CURRENT_SESSION_NOT_FIXATED_FOR_APPEND , 0x3009),
  732. MAKE_IT(MEDIUM_FORMAT_CORRUPTED , 0x3100),
  733. MAKE_IT(FORMAT_COMMAND_FAILED , 0x3101),
  734. MAKE_IT(ZONED_FORMATTING_FAILED_DUE_TO_SPARE_LINKING , 0x3102),
  735. MAKE_IT(NO_DEFECT_SPARE_LOCATION_AVAILABLE , 0x3200),
  736. MAKE_IT(DEFECT_LIST_UPDATE_FAILURE , 0x3201),
  737. MAKE_IT(TAPE_LENGTH_ERROR , 0x3300),
  738. MAKE_IT(ENCLOSURE_FAILURE , 0x3400),
  739. MAKE_IT(ENCLOSURE_SERVICES_FAILURE , 0x3500),
  740. MAKE_IT(UNSUPPORTED_ENCLOSURE_FUNCTION , 0x3501),
  741. MAKE_IT(ENCLOSURE_SERVICES_UNAVAILABLE , 0x3502),
  742. MAKE_IT(ENCLOSURE_SERVICES_TRANSFER_FAILURE , 0x3503),
  743. MAKE_IT(ENCLOSURE_SERVICES_TRANSFER_REFUSED , 0x3504),
  744. MAKE_IT(RIBBON_INK_OR_TONER_FAILURE , 0x3600),
  745. MAKE_IT(ROUNDED_PARAMETER , 0x3700),
  746. MAKE_IT(SAVING_PARAMETERS_NOT_SUPPORTED , 0x3900),
  747. MAKE_IT(MEDIUM_NOT_PRESENT , 0x3A00),
  748. MAKE_IT(MEDIUM_NOT_PRESENT__TRAY_CLOSED , 0x3A01),
  749. MAKE_IT(MEDIUM_NOT_PRESENT__TRAY_OPEN , 0x3A02),
  750. MAKE_IT(SEQUENTIAL_POSITIONING_ERROR , 0x3B00),
  751. MAKE_IT(TAPE_POSITION_ERROR_AT_BEGINNING_OF_MEDIUM , 0x3B01),
  752. MAKE_IT(TAPE_POSITION_ERROR_AT_END_OF_MEDIUM , 0x3B02),
  753. MAKE_IT(TAPE_OR_ELECTRONIC_VERTICAL_FORMS_UNIT_NOT_READY , 0x3B03),
  754. MAKE_IT(SLEW_FAILURE , 0x3B04),
  755. MAKE_IT(PAPER_JAM , 0x3B05),
  756. MAKE_IT(FAILED_TO_SENSE_TOP_OF_FORM , 0x3B06),
  757. MAKE_IT(FAILED_TO_SENSE_BOTTOM_OF_FORM , 0x3B07),
  758. MAKE_IT(REPOSITION_ERROR , 0x3B08),
  759. MAKE_IT(READ_PAST_END_OF_MEDIUM , 0x3B09),
  760. MAKE_IT(READ_PAST_BEGINNING_OF_MEDIUM , 0x3B0A),
  761. MAKE_IT(POSITION_PAST_END_OF_MEDIUM , 0x3B0B),
  762. MAKE_IT(POSITION_PAST_BEGINNING_OF_MEDIUM , 0x3B0C),
  763. MAKE_IT(MEDIUM_DESTINATION_ELEMENT_FULL , 0x3B0D),
  764. MAKE_IT(MEDIUM_SOURCE_ELEMENT_FULL , 0x3B0E),
  765. MAKE_IT(END_OF_MEDIUM_REACHED , 0x3B0F),
  766. MAKE_IT(MEDIUM_MAGAZINE_NOT_ACCESSIBLE , 0x3B11),
  767. MAKE_IT(MEDIUM_MAGAZINE_REMOVED , 0x3B12),
  768. MAKE_IT(MEDIUM_MAGAZINE_INSERTED , 0x3B13),
  769. MAKE_IT(MEDIUM_MAGAZINE_LOCKED , 0x3B14),
  770. MAKE_IT(MEDIUM_MAGAZINE_UNLOCKED , 0x3B15),
  771. MAKE_IT(MECHANICAL_POSITIONING_OR_CHANGER_ERROR , 0x3B16),
  772. MAKE_IT(INVALID_BITS_IN_IDENTIFY_MESSAGE , 0x3D00),
  773. MAKE_IT(LU_HAS_NOT_SELF_CONFIGURED_YET , 0x3E00),
  774. MAKE_IT(LU_FAILURE , 0x3E01),
  775. MAKE_IT(TIMEOUT_ON_LU , 0x3E02),
  776. MAKE_IT(TARGET_OPERATING_CONDITIONS_HAVE_CHANGED , 0x3F00),
  777. MAKE_IT(MICROCODE_HAS_BEEN_CHANGED , 0x3F01),
  778. MAKE_IT(CHANGED_OPERATING_DEFINITION , 0x3F02),
  779. MAKE_IT(INQUIRY_DATA_HAS_CHANGED , 0x3F03),
  780. MAKE_IT(_OBSOLETE__RAM_FAILURE , 0x4000),
  781. // ALL 40/nn ARE VENDOR-UNIQUE NOTIFICATIONS OF FAILURE ON COMPONENT nn
  782. MAKE_IT(_OBSOLETE__DATA_PATH_FAILURE , 0x4100),
  783. MAKE_IT(_OSBOLETE__POWER_ON_OR_SELF_TEST_FAILURE , 0x4200),
  784. MAKE_IT(MESSAGE_ERROR , 0x4300),
  785. MAKE_IT(INTERNAL_TARGET_FAILURE , 0x4400),
  786. MAKE_IT(SELECT_OR_RESELECT_FAILURE , 0x4500),
  787. MAKE_IT(UNSUCCESSFUL_SOFT_RESET , 0x4600),
  788. MAKE_IT(SCSI_PARITY_ERROR , 0x4700),
  789. MAKE_IT(INITIATOR_DETECTED_ERROR_MESSAGE_RECEIVED , 0x4800),
  790. MAKE_IT(INVALID_MESSAGE_ERROR , 0x4900),
  791. MAKE_IT(COMMAND_PHASE_ERROR , 0x4A00),
  792. MAKE_IT(DATA_PHASE_ERROR , 0x4B00),
  793. MAKE_IT(LOGICAL_UNIT_FAILED_SELF_CONFIGURATION , 0x4C00),
  794. // TAGGED_OVERLAPPED_COMMANDS
  795. MAKE_IT(OVERLAPPED_COMMANDS_ATTEMPTED , 0x4E00),
  796. MAKE_IT(WRITE_APPEND_ERROR , 0x5000),
  797. MAKE_IT(WRITE_APPEND_POSITION_ERROR , 0x5001),
  798. MAKE_IT(POSITION_ERROR_RELATED_TO_TIMING , 0x5002),
  799. MAKE_IT(ERASE_FAILURE , 0x5100),
  800. MAKE_IT(ERASE_FAILURE__INCOMPLETE_ERASE_DETECTED , 0x5101),
  801. MAKE_IT(CARTRIDGE_FAULT , 0x5200),
  802. MAKE_IT(MEDIA_LOAD_OR_EJECT_FAILURE , 0x5300),
  803. MAKE_IT(UNLOAD_TAPE_FAILURE , 0x5301),
  804. MAKE_IT(MEDIUM_REMOVAL_PREVENTED , 0x5302),
  805. MAKE_IT(SCSI_TO_HOST_SYSTEM_INTERFACE_FAILURE , 0x5400),
  806. MAKE_IT(SYSTEM_RESOURCE_FAILURE , 0x5500),
  807. MAKE_IT(SYSTEM_BUFFER_FULL , 0x5501),
  808. MAKE_IT(UNABLE_TO_RECOVER_TABLE_OF_CONTENTS , 0x5700),
  809. MAKE_IT(GENERATION_DOES_NOT_EXIST , 0x5800),
  810. MAKE_IT(UPDATED_BLOCK_READ , 0x5900),
  811. MAKE_IT(OPERATOR_REQUEST_OR_STATE_CHANGE_INPUT , 0x5A00),
  812. MAKE_IT(OPERATOR_MEDIUM_REMOVAL_REQUEST , 0x5A01),
  813. MAKE_IT(OPERATOR_SELECTED_WRITE_PROTECT , 0x5A02),
  814. MAKE_IT(OPERATOR_SELECTED_WRITE_PERMIT , 0x5A03),
  815. MAKE_IT(LOG_EXCEPTION , 0x5B00),
  816. MAKE_IT(THRESHOLD_CONDITION_MET , 0x5B01),
  817. MAKE_IT(LOG_COUNTER_AT_MAXIMUM , 0x5B02),
  818. MAKE_IT(LOG_LIST_CODES_EXHAUSTED , 0x5B03),
  819. MAKE_IT(RPL_STATUS_CHANGE , 0x5C00),
  820. MAKE_IT(SPINDLES_SYNCHRONIZED , 0x5C01),
  821. MAKE_IT(SPINDLES_NOT_SYNCHRONIZED , 0x5C02),
  822. MAKE_IT(FAILURE_PREDICTION_THRESHOLD_EXCEEDED__LU_FAILURE , 0x5D00),
  823. MAKE_IT(FAILURE_PREDICTION_THRESHOLD_EXCEEDED__MEDIA_FAILURE , 0x5D01),
  824. MAKE_IT(FAILURE_PREDICTION_THRESHOLD_EXCEEDED__SPARE_AREA_EXHAUSTION , 0x5D03),
  825. MAKE_IT(FAILURE_PREDICTION_THRESHOLD_EXCEEDED__TEST_VALUE , 0x5DFF),
  826. MAKE_IT(LOW_POWER_CONDITION_ON , 0x5E00),
  827. MAKE_IT(IDLE_CONDITION_ACTIVATED_BY_TIMER , 0x5E01),
  828. MAKE_IT(STANDBY_CONDITION_ACTIVATED_BY_TIMER , 0x5E02),
  829. MAKE_IT(IDLE_CONDITION_ACTIVATED_BY_COMMAND , 0x5E03),
  830. MAKE_IT(STANDBY_CONDITION_ACTIVATED_BY_COMMAND , 0x5E04),
  831. MAKE_IT(LAMP_FAILURE , 0x6000),
  832. MAKE_IT(VIDEO_ACQUISITION_ERROR , 0x6100),
  833. MAKE_IT(UNABLE_TO_ACQUIRE_VIDEO , 0x6101),
  834. MAKE_IT(OUT_OF_FOCUS , 0x6102),
  835. MAKE_IT(SCAN_HEAD_POSITIONING_ERROR , 0x6200),
  836. MAKE_IT(END_OF_USER_AREA_ENCOUNTERED_ON_THIS_TRACK , 0x6300),
  837. MAKE_IT(PACKET_DOES_NOT_FIT_IN_AVAILABLE_SPACE , 0x6301),
  838. MAKE_IT(ILLEGAL_MODE_FOR_THIS_TRACK , 0x6400),
  839. MAKE_IT(INVALID_PACKET_SIZE , 0x6401),
  840. MAKE_IT(VOLTAGE_FAULT , 0x6500),
  841. MAKE_IT(AUTOMATIC_DOCUMENT_FEEDER_COVER_UP , 0x6600),
  842. MAKE_IT(AUTOMATIC_DOCUMENT_FEEDER_LIFT_UP , 0x6601),
  843. MAKE_IT(DOCUMENT_JAM_IN_AUTOMATIC_DOCUMENT_FEEDER , 0x6602),
  844. MAKE_IT(DOCUMENT_MISS_FEED_AUTOMATIC_IN_DOCUMENT_FEEDER , 0x6603),
  845. MAKE_IT(CONFIGURATION_FAILURE , 0x6700),
  846. MAKE_IT(CONFIGURATION_OF_INCAPABLE_LOGICAL_UNITS_FAILED , 0x6701),
  847. MAKE_IT(ADD_LOGICAL_UNIT_FAILED , 0x6702),
  848. MAKE_IT(MODIFICATION_OF_LOGICAL_UNIT_FAILED , 0x6703),
  849. MAKE_IT(EXCHANGE_OF_LOGICAL_UNIT_FAILED , 0x6704),
  850. MAKE_IT(REMOVE_OF_LOGICAL_UNIT_FAILED , 0x6705),
  851. MAKE_IT(ATTACHMENT_OF_LOGICAL_UNIT_FAILED , 0x6706),
  852. MAKE_IT(CREATION_OF_LOGICAL_UNIT_FAILED , 0x6707),
  853. MAKE_IT(LOGICAL_UNIT_NOT_CONFIGURED , 0x6800),
  854. MAKE_IT(DATA_LOSS_ON_LOGICAL_UNIT , 0x6900),
  855. MAKE_IT(MULTIPLE_LOGICAL_UNIT_FAILURES , 0x6901),
  856. MAKE_IT(A_PARITY__DATA_MISMATCH , 0x6902),
  857. MAKE_IT(INFORMATIONAL__REFER_TO_LOG , 0x6A00),
  858. MAKE_IT(STATE_CHANGE_HAS_OCCURRED , 0x6B00),
  859. MAKE_IT(REDUNDANCY_LEVEL_GOT_BETTER , 0x6B01),
  860. MAKE_IT(REDUNDANCY_LEVEL_GOT_WORSE , 0x6B02),
  861. MAKE_IT(REBUILD_FAILURE_OCCURRED , 0x6C00),
  862. MAKE_IT(RECALCULATE_FAILURE_OCCURRED , 0x6D00),
  863. MAKE_IT(COMMAND_TO_LOGICAL_UNIT_FAILED , 0x6E00),
  864. MAKE_IT(COPY_PROTECTION_KEY_EXCHANGE_FAILURE__AUTHENTICATION_FAILURE , 0x6F00),
  865. MAKE_IT(COPY_PROTECTION_KEY_EXCHANGE_FAILURE__KEY_NOT_PRESENT , 0x6F01),
  866. MAKE_IT(COPY_PROTECTION_KEY_EXCHANGE_FAILURE__KEY_NOT_ESTABLISHED , 0x6F02),
  867. MAKE_IT(READ_OF_SCRAMBLED_SECTOR_WITHOUT_AUTHENTICATION , 0x6F03),
  868. MAKE_IT(MEDIA_REGION_CODE_IS_MISMATCHED_TO_LOGICAL_UNIT_REGION , 0x6F04),
  869. MAKE_IT(DRIVE_REGION_MUST_BE_PERMANENT_REGION_RESET_COUNT_ERROR , 0x6F05),
  870. //SPTLIB_DECOMPRESSION EXCEPTION SHORT ALGORITHM ID OF NN = 0x70NN,
  871. MAKE_IT(DECOMPRESSION_EXCEPTION_LONG_ALGORITHM_ID , 0x7100),
  872. MAKE_IT(SESSION_FIXATION_ERROR , 0x7200),
  873. MAKE_IT(SESSION_FIXATION_ERROR_WRITING_LEAD_IN , 0x7201),
  874. MAKE_IT(SESSION_FIXATION_ERROR_WRITING_LEAD_OUT , 0x7202),
  875. MAKE_IT(SESSION_FIXATION_ERROR__INCOMPLETE_TRACK_IN_SESSION , 0x7203),
  876. MAKE_IT(EMPTY_OR_PARTIALLY_WRITTEN_RESERVED_TRACK , 0x7204),
  877. MAKE_IT(NO_MORE_RZONE_RESERVATIONS_ARE_ALLOWED , 0x7205),
  878. MAKE_IT(CD_CONTROL_ERROR , 0x7300),
  879. MAKE_IT(POWER_CALIBRATION_AREA_ALMOST_FULL , 0x7301),
  880. MAKE_IT(POWER_CALIBRATION_AREA_IS_FULL , 0x7302),
  881. MAKE_IT(POWER_CALIBRATION_AREA_ERROR , 0x7303),
  882. MAKE_IT(PROGRAM_MEMORY_AREA_RMA_UPDATE_FAILURE , 0x7304),
  883. MAKE_IT(PROGRAM_MEMORY_AREA_RMA_IS_FULL , 0x7305),
  884. MAKE_IT(PROGRAM_MEMORY_AREA_RMA_IS_ALMOST_FULL , 0x7306),
  885. } SCSI_ASC_ASCQ_RETURN_VALUES, *PSCSI_ASC_ASCQ_RETURN_VALUES;
  886. #endif // 0
  887. #pragma warning(pop)
  888. #ifdef __cplusplus
  889. }
  890. #endif
  891. #endif // __SPTLIB_H__