包含指定错误信息日志页中信息的字段。
“错误信息日志”页包含命令的扩展错误信息,该命令已完成错误或报告了不特定于特定命令的错误。 当在“状态”字段中将“更多”(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 |