NVME_ERROR_INFO_LOG-Struktur (nvme.h)

Enthält Felder, die die Informationen in einer Protokollseite für Fehlerinformationen angeben.

Die Seite Fehlerinformationsprotokoll enthält erweiterte Fehlerinformationen für einen Befehl, der mit einem Fehler abgeschlossen oder einen Fehler gemeldet hat, der für einen bestimmten Befehl nicht spezifisch ist. Erweiterte Fehlerinformationen werden bereitgestellt, wenn mehr (M) im Feld Status für den Vervollständigungswarteschlangeneintrag festgelegt 1 ist, der dem Befehl zugeordnet ist, der mit einem Fehler abgeschlossen wurde, oder als Teil eines asynchronen Ereignisses mit einem Fehler status-Typs.

Die Seite Fehlerinformationsprotokoll ist global für den Controller. Dieses Fehlerprotokoll gibt möglicherweise die letzten n-Fehler zurück. Wenn die 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 besteht aus 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;

Member

ErrorCount

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

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

SQID

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

CMDID

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

Status

Gibt das Statusfeld für den abgeschlossenen Befehl an.

Das Statusfeld befindet sich in Bit 01:15. Bit 0 entspricht dem Für den Befehl bereitgestellten Phasentag (P). Wenn der Fehler nicht spezifisch für einen bestimmten Befehl ist, meldet dieses Feld den am häufigsten anwendbaren status Wert.

ParameterErrorLocation

Eine ParameterErrorLocation-Struktur , die Felder enthält, die das Byte und Bit des Befehlsparameters angeben, dem der Fehler zugeordnet ist, falls zutreffend.

Wenn sich der Parameter über mehrere Bytes oder Bits erstreckt, gibt der Speicherort das erste Byte und bit des Parameters an. Wenn der Fehler nicht für einen bestimmten Befehl spezifisch ist, wird dieses Feld auf FFFFhfestgelegt.

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 enthält.

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 (LBA) an, bei der die Fehlerbedingung aufgetreten ist, falls zutreffend.

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.

Der Wert von 00h gibt an, dass keine zusätzlichen Informationen verfügbar sind. Gültige Werte liegen 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
Unterstützte Mindestversion (Client) Windows 10
Kopfzeile nvme.h