NVME_ERROR_INFO_LOG结构(nvme.h)

包含指定错误信息日志页中信息的字段。

“错误信息日志”页包含命令的扩展错误信息,该命令已完成错误或报告了不特定于特定命令的错误。 当在“状态”字段中将“更多”(M设置为1完成队列条目”时,会提供扩展错误信息,该命令与使用错误完成的命令相关联,或者作为具有错误状态类型的异步事件的一部分。

“错误信息日志”页是控制器的全局页面。 此错误日志可能会返回最后 n 个错误。 如果主机软件指定 n 个错误日志大小的数据传输,则返回最后 n 个错误的错误日志。 条目的排序基于发生错误的时间,最新错误作为第一个日志返回。

“错误信息日志”页是一组 64 字节条目; 标识控制器 数据结构中指示支持的条目数。

此结构由“获取日志页”命令返回。 有关详细信息,请参阅 NVME_CDW10_GET_LOG_PAGE

Syntax

typedef struct {
  ULONGLONG           ErrorCount;
  USHORT              SQID;
  USHORT              CMDID;
  NVME_COMMAND_STATUS Status;
  struct {
    USHORT Byte : 8;
    USHORT Bit : 3;
    USHORT Reserved : 5;
  } ParameterErrorLocation;
  ULONGLONG           Lba;
  ULONG               NameSpace;
  UCHAR               VendorInfoAvailable;
  UCHAR               Reserved0[3];
  ULONGLONG           CommandSpecificInfo;
  UCHAR               Reserved1[24];
} NVME_ERROR_INFO_LOG, *PNVME_ERROR_INFO_LOG;

Members

ErrorCount

一个 64 位递增错误计数,指示此错误的唯一标识符。

错误计数从每个 1h唯一错误日志条目开始递增,并在关机条件中保留。 一个指示无效条目的值 0h ;当存在丢失条目或错误数少于控制器支持的最大条目数时,可以使用此值。

SQID

指示与错误信息关联的命令的提交队列标识符(SQID)。 如果错误不特定于特定命令,则此字段设置为 FFFFh

CMDID

指示与错误关联的命令的命令标识符(CMDID)。 如果错误不特定于特定命令,则设置为 FFFFh

Status

指示已完成的命令的状态字段。

状态字段位于位 01:15。 位 0 对应于为命令发布的阶段标记(P)。 如果错误不特定于特定命令,则此字段将报告最适用的状态值。

ParameterErrorLocation

ParameterErrorLocation 结构,其中包含指示错误所关联的命令参数的字节和位(如果适用)。

如果参数跨越多个字节或位,则位置指示参数的第一个字节和位。 如果错误不特定于特定命令,则此字段设置为 FFFFh

ParameterErrorLocation.Byte

指示包含错误的命令中的字节。

此值包含在 ParameterErrorLocation 结构的位 0:7 中。 有效值为 0 到 63。

ParameterErrorLocation.Bit

指示包含错误的命令中的 Bit。

此值包含在 ParameterErrorLocation 结构的位 8:10 中。 有效值为 0 到 7。

ParameterErrorLocation.Reserved

ParameterErrorLocation 结构的位 11:15 保留。

Lba

指示遇到错误条件的第一个逻辑块地址(LBA),如果适用。

NameSpace

指示错误与该错误关联的命名空间(如果适用)。

VendorInfoAvailable

当有其他供应商特定的错误信息可用时,此字段提供与该页关联的日志页标识符。

指示没有可用的其他信息的值 00h 。 有效值在 to FFh范围内80h

Reserved0[3]

保留字段。

CommandSpecificInfo

包含特定于命令的信息。 如果使用,则命令定义指定返回的信息。

Reserved1[24]

保留字段。

要求

Requirement 价值
最低支持的客户端 Windows 10操作系统
Header nvme.h