NVME_ERROR_INFO_LOG结构 (nvme.h)
包含指定错误信息日志页中信息的字段。
“错误信息日志”页包含命令的扩展错误信息,该命令已完成但出现错误或报告了不特定于特定命令的错误。 当“更多 (M) ”字段中的“完成队列条目”的“状态”字段中将“更多 (”设置为1
时,将提供扩展错误信息,该命令与“错误”状态类型关联的命令或作为异步事件的一部分使用错误状态类型。
错误信息日志页对控制器是全局的。 此错误日志可能会返回最后 n 个 错误。 如果主机软件指定 n 个错误日志 大小的数据传输,则返回最后 n 个错误的错误日志。 条目的顺序取决于发生错误的时间,最新的错误将作为第一个日志返回。
“错误信息日志”页是一组 64 字节条目; 识别控制器 数据结构中指示支持的条目数。
此结构由“获取日志页”命令返回。 有关详细信息,请参阅 NVME_CDW10_GET_LOG_PAGE。
语法
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;
成员
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
指示命令中包含错误的位。
此值包含在 ParameterErrorLocation 结构的位 8:10 中。 有效值为 0 到 7。
ParameterErrorLocation.Reserved
保留 ParameterErrorLocation 结构的位 11:15。
Lba
指示遇到错误条件的第一个逻辑块地址 (LBA) (如果适用)。
NameSpace
指示与错误关联的命名空间(如果适用)。
VendorInfoAvailable
如果有其他供应商特定的错误信息可用,此字段将提供与该页面关联的日志页标识符。
值 指示 00h
没有其他可用信息。 有效值在 到 FFh
的范围内80h
。
Reserved0[3]
保留字段。
CommandSpecificInfo
包含特定于命令的信息。 如果使用,命令定义将指定返回的信息。
Reserved1[24]
保留字段。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 |
标头 | nvme.h |