Freigeben über


NVME_ERROR_INFO_LOG Struktur (nvme.h)

Enthält Felder, die die Informationen auf einer Fehlerinformationsprotokollseite angeben.

Die Seite "Fehlerinformationen" enthält erweiterte Fehlerinformationen für einen Befehl, der mit einem Fehler abgeschlossen wurde, oder einen Fehler gemeldet hat, der nicht für einen bestimmten Befehl spezifisch ist. Erweiterte Fehlerinformationen werden bereitgestellt, wenn "Mehr(M)" im Feld "Status" für den mit einem Fehler abgeschlossenen Befehl verknüpften Vervollständigungswarteschlangeneintrag oder als Teil eines asynchronen Ereignisses mit einem Fehlerstatustyp festgelegt 1 ist.

Die Seite "Fehlerinformationsprotokoll" ist global für den Controller. Dieses Fehlerprotokoll gibt möglicherweise die letzten n Fehler zurück. Wenn hostsoftware eine Datenübertragung der Größe von n-Fehlerprotokollen angibt, werden die Fehlerprotokolle für die letzten n Fehler zurückgegeben. Die Reihenfolge der Einträge basiert auf dem Zeitpunkt, zu dem der Fehler aufgetreten ist, wobei der letzte Fehler als erstes Protokoll zurückgegeben wird.

Die Seite "Fehlerinformationsprotokoll" ist eine Reihe von 64 Byteeinträgen; Die Anzahl der unterstützten Einträge wird in der Datenstruktur " Controller identifizieren" angegeben.

Diese Struktur wird vom Befehl 'Protokollseite abrufen' zurückgegeben. Weitere Informationen finden Sie unter 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;

Elemente

ErrorCount

Eine 64-Bit-, inkrementierende Fehleranzahl, die einen eindeutigen Bezeichner für diesen Fehler angibt.

Die Fehleranzahl beginnt bei 1h, wird für jeden eindeutigen Fehlerprotokolleintrag inkrementiert und wird über Stromabschaltungsbedingungen hinweg beibehalten. Ein Wert von 0h gibt einen ungültigen Eintrag an. Dieser Wert kann verwendet werden, wenn Einträge verloren gehen oder weniger Fehler als die maximale Anzahl von Einträgen vorhanden sind, die der Controller unterstützt.

SQID

Gibt den SQID (Submission Queue Identifier) des Befehls an, dem die Fehlerinformationen zugeordnet sind. Wenn der Fehler nicht für einen bestimmten Befehl spezifisch ist, wird dieses Feld auf FFFFh.

CMDID

Gibt den Befehlsbezeichner (COMMAND Identifier, CMDID) des Befehls an, dem der Fehler zugeordnet ist. Wenn der Fehler nicht spezifisch für einen bestimmten Befehl ist, ist dies auf FFFFh.

Status

Gibt das Statusfeld für den abgeschlossenen Befehl an.

Das Statusfeld befindet sich in Bits 01:15. Bit 0 entspricht dem für den Befehl bereitgestellten Phasentag (P). Wenn der Fehler nicht für einen bestimmten Befehl spezifisch ist, meldet dieses Feld den am besten geeigneten Statuswert.

ParameterErrorLocation

Eine ParameterErrorLocation-Struktur mit Feldern, die das Byte und Bit des Befehlsparameters angeben, dem der Fehler zugeordnet ist, falls zutreffend.

Wenn der Parameter mehrere Bytes oder Bits umfasst, gibt die Position das erste Byte und das Bit des Parameters an. Wenn der Fehler nicht für einen bestimmten Befehl spezifisch ist, wird dieses Feld auf FFFFh.

ParameterErrorLocation.Byte

Gibt das Byte im Befehl an, der den Fehler enthielt.

Dieser Wert ist in Bits 0:7 der ParameterErrorLocation-Struktur enthalten. Gültige Werte sind 0 bis 63.

ParameterErrorLocation.Bit

Gibt das Bit im Befehl an, der den Fehler enthielt.

Dieser Wert ist in Bits 8:10 der ParameterErrorLocation-Struktur enthalten. Gültige Werte sind 0 bis 7.

ParameterErrorLocation.Reserved

Bits 11:15 der ParameterErrorLocation-Struktur sind reserviert.

Lba

Gibt die erste logische Blockadresse (Logical Block Address, LBA) an, die ggf. die Fehlerbedingung aufgetreten ist.

NameSpace

Gibt den Namespace an, dem der Fehler zugeordnet ist, falls zutreffend.

VendorInfoAvailable

Wenn zusätzliche anbieterspezifische Fehlerinformationen verfügbar sind, stellt dieses Feld den Protokollseitenbezeichner bereit, der dieser Seite zugeordnet ist.

Ein Wert, der 00h angibt, dass keine zusätzlichen Informationen verfügbar sind. Gültige Werte befinden sich im Bereich von 80h bis FFh.

Reserved0[3]

Ein reserviertes Feld.

CommandSpecificInfo

Enthält Befehlsspezifische Informationen. Bei Verwendung gibt die Befehlsdefinition die zurückgegebenen Informationen an.

Reserved1[24]

Ein reserviertes Feld.

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows 10
Header nvme.h