NVME_HEALTH_INFO_LOG-Struktur (nvme.h)

Enthält Felder, die die Informationen angeben, die auf der Seite SMART/Integritätsinformationsprotokoll enthalten sind.

Auf der Seite SMART/Integritätsinformationsprotokoll werden SMART und allgemeine Integritätsinformationen über die Lebensdauer des Controllers bereitgestellt, die über Energiezyklen hinweg aufbewahrt werden. Die Protokollseite wird global unterstützt. Um die globale Protokollseite anzufordern, geben Sie den Namespace FFFFFFFFhan.

Die Seite SMART/Integritätsinformationsprotokoll kann auch auf Namespacebasis unterstützt werden, wie in der Datenstruktur Identifizieren des Verantwortlichen angegeben. Wenn die Protokollseite nicht pro Namespace unterstützt wird, sollte die Angabe eines anderen Namespaces den FFFFFFFFh Befehl mit einer status NVME_STATUS_INVALID_FIELD_IN_COMMAND abbrechen. In NVMe Version 1.3 sind keine namespacespezifischen Informationen auf der SMART/Health-Protokollseite definiert, sodass die globale Protokollseite und die namespacespezifische Protokollseite identische Informationen enthalten.

Kritische Warnungen bezüglich der Integrität des NVM-Subsystems werden über eine asynchrone Ereignisbenachrichtigung an den Host angezeigt. Die Warnungen, die zu einer asynchronen Ereignisbenachrichtigung für den Host führen, werden mithilfe des Befehls Features festlegen konfiguriert.

Die Leistung kann mithilfe von Parametern berechnet werden, die im Rahmen des SMART-/Integritätsinformationsprotokolls zurückgegeben werden. Insbesondere die Anzahl der Lese- oder Schreibbefehle, die Menge der gelesenen oder geschriebenen Daten und die Menge der Controllerauslastung ermöglichen es, sowohl E/A pro Sekunde als auch Bandbreite zu berechnen.

Die NVME_HEALTH_INFO_LOG-Struktur wird vom Befehl Protokollseite abrufen zurückgegeben. Weitere Informationen finden Sie unter NVME_CDW10_GET_LOG_PAGE.

Syntax

typedef struct {
  union {
    struct {
      UCHAR AvailableSpaceLow : 1;
      UCHAR TemperatureThreshold : 1;
      UCHAR ReliabilityDegraded : 1;
      UCHAR ReadOnly : 1;
      UCHAR VolatileMemoryBackupDeviceFailed : 1;
      UCHAR Reserved : 3;
    } DUMMYSTRUCTNAME;
    UCHAR AsUchar;
  } CriticalWarning;
  UCHAR  Temperature[2];
  UCHAR  AvailableSpare;
  UCHAR  AvailableSpareThreshold;
  UCHAR  PercentageUsed;
  UCHAR  Reserved0[26];
  UCHAR  DataUnitRead[16];
  UCHAR  DataUnitWritten[16];
  UCHAR  HostReadCommands[16];
  UCHAR  HostWrittenCommands[16];
  UCHAR  ControllerBusyTime[16];
  UCHAR  PowerCycle[16];
  UCHAR  PowerOnHours[16];
  UCHAR  UnsafeShutdowns[16];
  UCHAR  MediaErrors[16];
  UCHAR  ErrorInfoLogEntryCount[16];
  ULONG  WarningCompositeTemperatureTime;
  ULONG  CriticalCompositeTemperatureTime;
  USHORT TemperatureSensor1;
  USHORT TemperatureSensor2;
  USHORT TemperatureSensor3;
  USHORT TemperatureSensor4;
  USHORT TemperatureSensor5;
  USHORT TemperatureSensor6;
  USHORT TemperatureSensor7;
  USHORT TemperatureSensor8;
  UCHAR  Reserved1[296];
} NVME_HEALTH_INFO_LOG, *PNVME_HEALTH_INFO_LOG;

Member

CriticalWarning

Eine Kritische Warnungsstruktur (CriticalWarning), die Felder enthält, die kritische Warnungen für den Status des Controllers angeben.

Jedes Feld der CriticalWarning-Struktur ist ein Bit, das einem kritischen Warnungstyp entspricht. Mehrere Bits können festgelegt werden. Wenn ein Bit für 0gelöscht wird, gilt diese kritische Warnung nicht. Bits in diesem Feld stellen den aktuellen zugeordneten Zustand dar und sind nicht persistent.

Kritische Warnungen können zu einer asynchronen Ereignisbenachrichtigung für den Host führen.

CriticalWarning.DUMMYSTRUCTNAME

CriticalWarning.DUMMYSTRUCTNAME.AvailableSpaceLow

Gibt an, ob der verfügbare freie Speicherplatz unter den Schwellenwert gefallen ist.

Wenn dieser Wert auf 1festgelegt ist, ist der verfügbare freie Speicherplatz unter den Schwellenwert gefallen.

CriticalWarning.DUMMYSTRUCTNAME.TemperatureThreshold

Gibt an, ob eine Temperatur über einem Übertemperaturschwellenwert oder unter einem Untertemperaturschwellenwert liegt.

Wenn dieser Wert auf 1festgelegt ist, liegt eine Temperatur über einem Übertemperaturschwellenwert oder unter einem Untertemperaturschwellenwert. Weitere Informationen zu Temperaturschwellenwerten finden Sie unter NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD.

CriticalWarning.DUMMYSTRUCTNAME.ReliabilityDegraded

Gibt an, ob die Zuverlässigkeit des NVM-Subsystems beeinträchtigt wurde.

Wenn dieser Wert auf 1festgelegt ist, wurde die Zuverlässigkeit des NVM-Subsystems aufgrund erheblicher medienbezogener Fehler oder eines internen Fehlers, der die Zuverlässigkeit des NVM-Subsystems beeinträchtigt, beeinträchtigt.

CriticalWarning.DUMMYSTRUCTNAME.ReadOnly

Gibt an, ob das Medium im schreibgeschützten Modus platziert wurde.

Wenn dieser Wert auf 1festgelegt ist, wurde das Medium in den schreibgeschützten Modus versetzt.

CriticalWarning.DUMMYSTRUCTNAME.VolatileMemoryBackupDeviceFailed

Gibt an, ob beim Sicherungsgerät für den flüchtigen Speicher ein Fehler aufgetreten ist.

Wenn dieser Wert auf 1festgelegt ist, ist beim Sicherungsgerät für flüchtigen Speicher ein Fehler aufgetreten. Dieses Feld ist nur gültig, wenn der Controller über eine Lösung für die Sicherung des flüchtigen Speichers verfügt.

CriticalWarning.DUMMYSTRUCTNAME.Reserved

Bits 05:07 der CriticalWarning-Struktur sind reserviert.

CriticalWarning.AsUchar

Temperature[2]

Gibt die zusammengesetzte Temperatur des Gesamtgeräts in Grad Kelvin an, einschließlich des Controllers und des NVM-Subsystems.

Wenn die Temperatur in diesem Feld den Temperaturschwellenwert überschreitet, kann es zu einer asynchronen Ereignisvervollständigung kommen. Weitere Informationen finden Sie unter NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD.

Die Werte für Warnungen und kritische überhitzende zusammengesetzte Temperaturwerte werden von den Feldern WCTEMP und CCTEMP in der Datenstruktur "Controller identifizieren" gemeldet.

AvailableSpare

Gibt einen normalisierten Prozentsatz (0 bis 100) der verbleibenden freien Kapazität an.

AvailableSpareThreshold

Gibt den Schwellenwert der verfügbaren freien Kapazität an.

Wenn der Wert von AvailableSpare unter den in diesem Feld angegebenen Schwellenwert fällt, kann es zu einer asynchronen Ereignisvervollständigung kommen. Der Wert wird als normalisierter Prozentsatz (0 bis 100) angegeben.

PercentageUsed

Gibt eine herstellerspezifische Schätzung des Prozentsatzes der verwendeten NVM-Subsystemlebensdauer basierend auf der tatsächlichen Nutzung und der Vorhersage der NVM-Lebensdauer des Herstellers an.

Der Wert 100 gibt an, dass die geschätzte Ausdauer des NVM im NVM-Subsystem verbraucht wurde, aber möglicherweise nicht auf einen NVM-Subsystemfehler hindeutet. Der Wert darf 100 überschreiten. Prozentwerte größer als 254 werden als 255 dargestellt. Dieser Wert wird einmal pro Einschaltstunde aktualisiert (wenn sich der Controller nicht im Ruhezustand befindet).

Reserved0[26]

Ein reserviertes Feld.

DataUnitRead[16]

Gibt die Anzahl von 512 Byte-Dateneinheiten an, die der Host vom Controller gelesen hat, ohne Metadaten.

Der Wert dieses Felds wird in Tausender angegeben und aufgerundet. Beispielsweise entspricht ein Wert von 1 1 1.000 Einheiten von 512 Gelesenen Bytes. Wenn die LBA-Größe (Logical Block Access) einen anderen Wert als 512 Bytes aufweist, konvertiert der Controller die Menge der gelesenen Daten in 512 Byteeinheiten.

Für den NVM-Befehlssatz sind logische Blöcke, die als Teil der Vergleichs- und Lesevorgänge gelesen werden, in diesem Wert enthalten.

DataUnitWritten[16]

Gibt die Anzahl von 512 Byte-Dateneinheiten an, die der Host in den Controller geschrieben hat, ohne Metadaten.

Der Wert dieses Felds wird in Tausender angegeben und aufgerundet. Beispielsweise entspricht ein Wert von 1 1 1.000 Einheiten von 512 Gelesenen Bytes. Wenn die LBA-Größe (Logical Block Access) einen anderen Wert als 512 Bytes aufweist, konvertiert der Controller die Menge der geschriebenen Daten in 512 Byteeinheiten.

Für den NVM-Befehlssatz sind logische Blöcke, die als Teil von Schreibvorgängen geschrieben wurden, in diesem Wert enthalten. Schreibbefehle, die nicht korrigierbar sind, wirken sich nicht auf diesen Wert aus.

HostReadCommands[16]

Gibt die Anzahl der vom Controller abgeschlossenen Lesebefehle an.

Für den NVM-Befehlssatz ist dies die Anzahl der Vergleichs- und Lesebefehle.

HostWrittenCommands[16]

Gibt die Anzahl der Vom Controller abgeschlossenen Schreibbefehle an.

Für den NVM-Befehlssatz ist dies die Anzahl der Schreibbefehle.

ControllerBusyTime[16]

Gibt an, wie lange der Controller in Minuten mit E/A-Befehlen beschäftigt ist.

Der Controller ist ausgelastet, wenn ein Befehl für eine E/A-Warteschlange aussteht. Insbesondere, wenn ein Befehl über eine E/ A-Übermittlungswarteschlange Tail-Türklingel ausgegeben wurde und der entsprechende Vervollständigungswarteschlangeneintrag noch nicht in der zugeordneten E/A-Vervollständigungswarteschlange gebucht wurde.

PowerCycle[16]

Gibt die Anzahl der Energiezyklen an.

PowerOnHours[16]

Gibt die Anzahl der Einschaltstunden an. Dies schließt nicht die Zeit ein, in der der Controller mit Strom versorgt wurde und sich in einem Zustand mit geringem Stromzustand befand.

UnsafeShutdowns[16]

Gibt die Anzahl unsicherer Herunterfahren an. Diese Anzahl wird erhöht, wenn eine Benachrichtigung zum Herunterfahren, die in der SHN-Datei der Controllerkonfiguration angegeben ist, vor dem Verlust des Stroms nicht empfangen wird.

MediaErrors[16]

Gibt die Anzahl der Vorkommen an, bei denen der Controller einen nicht wiederhergestellten Datenintegritätsfehler erkannt hat.

Medienfehler wie nicht korrigierbare ECC- oder CRC-Prüfsummenfehler oder LBA-Tagkonflikt sind in diesem Feld enthalten.

ErrorInfoLogEntryCount[16]

Gibt die Anzahl der Fehlerinformationsprotokolleinträge über die Lebensdauer des Controllers an.

WarningCompositeTemperatureTime

Gibt die Zeitspanne in Minuten an, für die der Controller betriebsbereit ist, und die Zusammengesetzte Temperatur (Temperatur) ist größer oder gleich dem Feld Warnungs-Schwellenwert für zusammengesetzte Temperatur (WCTEMP) und kleiner als das CCTEMP-Feld (Critical Composite Temperature Threshold) in der Datenstruktur Des Controllers identifizieren .

Wenn der Wert des WCTEMP- oder CCTEMP-Felds ist0h, wird dieses Feld unabhängig vom Temperaturwert immer auf 0h gelöscht.

CriticalCompositeTemperatureTime

Gibt die Zeitspanne in Minuten an, in der der Controller betriebsbereit ist, und die Zusammengesetzte Temperatur (Temperatur) ist größer als das Feld Kritischer Zusammengesetzter Temperaturschwellenwert (Critical Composite Temperature Threshold, CCTEMP) in der Datenstruktur "Controller identifizieren ".

Wenn der Wert des CCTEMP-Felds ist0h, wird dieses Feld unabhängig vom Temperaturwert immer gelöscht0h.

TemperatureSensor1

Gibt die aktuelle Temperatur in Grad Kelvin an, die vom Temperatursensor 1 gemeldet wird.

TemperatureSensor2

Gibt die aktuelle Temperatur in Grad Kelvin an, die vom Temperatursensor 2 gemeldet wird.

TemperatureSensor3

Gibt die aktuelle Temperatur in Grad Kelvin an, die vom Temperatursensor 3 gemeldet wird.

TemperatureSensor4

Gibt die aktuelle Temperatur in Grad Kelvin an, die vom Temperatursensor 4 gemeldet wird.

TemperatureSensor5

Gibt die aktuelle Temperatur in Grad Kelvin an, die vom Temperatursensor 5 gemeldet wird.

TemperatureSensor6

Gibt die aktuelle Temperatur in Grad Kelvin an, die vom Temperatursensor 6 gemeldet wird.

TemperatureSensor7

Gibt die aktuelle Temperatur in Grad Kelvin an, die vom Temperatursensor 7 gemeldet wird.

TemperatureSensor8

Gibt die aktuelle Temperatur in Grad Kelvin an, die vom Temperatursensor 8 gemeldet wird.

Reserved1[296]

Ein reserviertes Feld.

Hinweise

Die von einem Temperatursensor gemeldete Temperatur kann verwendet werden, um ein asynchrones Ereignis auszulösen. Weitere Informationen finden Sie unter NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10
Kopfzeile nvme.h

Weitere Informationen