【问题标题】:SCSI additional sense codes meaning?SCSI附加感知码是什么意思?
【发布时间】:2014-04-23 19:28:23
【问题描述】:

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

升/. . . . . ASCQ DTLPWROMAEBKVF 说明 27/00 DT WRO BK 写保护 27/01 DT WRO BK 硬件写保护 27/02 DT WRO BK 逻辑单元软件写保护 27/03 T R 相关写保护 27/04 T R 持久写保护 27/05 T R 永久写保护 27/06 R F 条件写保护 27/07 D B 空间分配写保护失败

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

【问题讨论】:

    标签: scsi


    【解决方案1】:

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

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

    【讨论】:

    • 巴鲁克给出了最好的答案。 ASC/ASCQ 可以通过编程方式发挥作用的一个领域是确定介质是否被弹出或未格式化,以及是否可能对其进行操作。但是,即使在好的日子里,不同的供应商也不会真正就何时退货达成一致,您只会得到一个未准备好或中等错误感测键。大多数情况下,ASC/ASCQ 的使用贯穿于整个规范。您可以一次发现一个。 :)
    【解决方案2】:

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

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

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

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

    另外,我会查看标题为: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 值。下面列出了常用值,您也应该查阅您的硬件特定文档。

    【讨论】:

    • 很抱歉,这些页面每个 ASC/ASCQ 只包含三四个字,但我需要更详细的解释(实际上我已经从 T10.org 复制了一部分页面到我的问题) .
    • @AlekseyYakovlev - 查看更新,如果编辑有帮助,请告诉我。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      相关资源
      最近更新 更多