NVME_ERROR_INFO_LOG structure (nvme.h)
Contains fields that specify the information in an Error Information log page.
The Error Information log page contains extended error information for a command that completed with an error or reported an error that is not specific to a particular command. Extended error information is provided when More (M) is set to 1
in the Status field for the Completion Queue Entry associated with the command that completed with an error, or as part of an asynchronous event with an Error status type.
The Error Information log page is global to the controller. This error log may return the last n errors. If host software specifies a data transfer of the size of n error logs, then the error logs for the last n errors is returned. The ordering of the entries is based on the time when the error occurred, with the most recent error being returned as the first log.
The Error Information log page is a set of 64 byte entries; the number of supported entries is indicated in the Identify Controller data structure.
This structure is returned by the Get Log Page command. For more information, see 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
A 64-bit, incrementing error count, that indicates a unique identifier for this error.
The error count starts at 1h
, is incremented for each unique error log entry, and is retained across power off conditions. A value of 0h
indicates an invalid entry; this value may be used when there are lost entries or when there are fewer errors than the maximum number of entries the controller supports.
SQID
Indicates the Submission Queue Identifier (SQID) of the command that the error information is associated with. If the error is not specific to a particular command then this field is set to FFFFh
.
CMDID
Indicates the Command Identifier (CMDID) of the command that the error is associated with. If the error is not specific to a particular command then this is set to FFFFh
.
Status
Indicates the Status Field for the command that completed.
The Status Field is located in bits 01:15. Bit 0 corresponds to the Phase Tag (P) posted for the command. If the error is not specific to a particular command then this field reports the most applicable status value.
ParameterErrorLocation
A ParameterErrorLocation structure containing fields that indicate the Byte and Bit of the command parameter that the error is associated with, if applicable.
If the parameter spans multiple bytes or bits, the location indicates the first byte and bit of the parameter. If the error is not specific to a particular command, this field is set to FFFFh
.
ParameterErrorLocation.Byte
Indicates the Byte in the command that contained the error.
This value is contained in bits 0:7 of the ParameterErrorLocation structure. Valid values are 0 to 63.
ParameterErrorLocation.Bit
Indicates the Bit in the command that contained the error.
This value is contained in bits 8:10 of the ParameterErrorLocation structure. Valid values are 0 to 7.
ParameterErrorLocation.Reserved
Bits 11:15 of the ParameterErrorLocation structure are reserved.
Lba
Indicates the first Logical Block Address (LBA) that experienced the error condition, if applicable.
NameSpace
Indicates the namespace that the error is associated with, if applicable.
VendorInfoAvailable
When there is additional vendor specific error information available, this field provides the log page identifier associated with that page.
A value of 00h
indicates that no additional information is available. Valid values are in the range of 80h
to FFh
.
Reserved0[3]
A reserved field.
CommandSpecificInfo
Contains command specific information. If used, the command definition specifies the information returned.
Reserved1[24]
A reserved field.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 10 |
Header | nvme.h |