3

我正在开发一个 SCSI 目标软件(而且我是 SCSI 新手),我需要返回正确的感知数据来告诉发起者,它的请求没有通过,因为数据被保护不被写入。我正在查看来自 T10.org 的表格,其中描述了这些代码:

升/. . . . .
ASCQ DTLPWROMAEBKVF 说明
27/00 DT WRO BK 写保护
27/01 DT WRO BK 硬件写保护
27/02 DT WRO BK 逻辑单元软件写保护
27/03 TR 相关写保护
27/04 TR 持久写保护
27/05 TR 永久写保护
27/06 射频条件写保护
27/07 数据库空间分配写保护失败

这些各种 ASCQ 代码的含义是什么?我在任何地方都找不到任何解释。像“PERSISTENT WRITE PROTECT”这样的三四个词是我能找到的最大值。我想知道类似“如果你有这样的情况那么你需要使用 ASCQ = that ”。

4

3 回答 3

3

这方面没有对错之分,有一些基本准则,您可以通过查看使用普通磁盘的不同感应键返回的 ASC/ASCQ 代码来收集这些准则。日立最擅长在开放文档中记录这些内容。

唯一真正重要的是正确使用 Sense Key,ASC/ASCQ 很不错,但它唯一重要的是你。当客户打电话给您并告诉您“我做了这个并得到了那个错误代码,这是什么意思?” 你需要能够帮助他。这是这些代码唯一真正的重要性。

于 2014-05-16T15:37:36.637 回答
2

在 T10.org 网站的标题为:SCSI ASC/ASCQ 分配的页面下,有这些代码的列表。

此页面还描述了它们的用途,标题为:SCSI Additional Sense Data

SCSI 附加检测数据采用检测数据中的两个值编码字节的形式,通常由 REQUEST SENSE 命令返回。附加检测代码 (ASC) 字节指示有关在检测键字段中报告的错误异常的信息。附加感知代码限定符(ASCQ)表示与附加感知代码相关的详细信息。有关感知数据的更多信息,请参阅 SCSI Primary Commands - 4 (SPC-4) 标准草案(或更高版本)中描述 REQUEST SENSE 命令的条款。

分配的 ASC 和 ASCQ 值及其编码含义的描述组织在表格中,这些表格根据 ASC/ASCQ 值按数字排序,或根据描述 ASC/ASCQ 对指示的错误或异常的文本按字母顺序排序。如果您不熟悉这些表格,可以使用ASC/ASCQ 表格格式的说明。

另外,我会查看标题为:Key Code Qualifier的 Wikipedia 页面主题,其中有关于这些代码的说明。

Key Code Qualifier 是 SCSI 设备返回的错误代码。当 SCSI 目标设备响应命令返回检查条件时,发起方通常会发出 SCSI Request Sense 命令。此过程是称为偶然忠诚条件的 SCSI 协议的一部分。目标将使用一组 SCSI 感知数据响应 Request Sense 命令,其中包括三个字段,提供有关错误的越来越详细的级别:

  • K - 感知密钥 - 4 位,(固定感知数据格式的字节 2)
  • C - 附加检测代码 (ASC) - 8 位,(固定检测数据格式的字节 12)
  • Q - 附加检测代码限定符 (ASCQ) - 8 位,(固定检测数据格式的字节 13)

发起者可以仅基于指示错误是次要还是重大的 K 字段采取行动。然而,所有三个字段通常在逻辑上组合成一个 20 位字段,称为 Key Code Qualifier 或 KCQ。目标设备的规范将定义可能的 KCQ 值列表。在实践中,不同的 SCSI 设备类型和不同的 SCSI 设备供应商之间有许多通用的 KCQ 值。下面列出了常用值,您还应该查阅您的硬件特定文档。

于 2014-04-23T21:53:46.070 回答
0

简单来说,ASCQ 代码通常出现在来自 SCSI 目标设备的响应帧中。ASCQ 代码描述了附加的感知数据或通常称为设备中发生某些情况的原因。

于 2015-03-26T07:14:05.713 回答