Freigeben über


NVME_CONTROLLER_CONFIGURATION Union (nvme.h)

Enthält Lese-/Schreibkonfigurationseinstellungen für den Controller.

Die Hostsoftware legt die folgenden Felder auf gültige Werte fest, bevor sie den Controller aktivieren, indem der Feldwert EN aktivieren auf 1festgelegt wird:

Diese Struktur wird im Feld Controller Capabilities (CC) der NVME_CONTROLLER_REGISTERS-Struktur verwendet.

Syntax

typedef union {
  struct {
    ULONG EN : 1;
    ULONG Reserved0 : 3;
    ULONG CSS : 3;
    ULONG MPS : 4;
    ULONG AMS : 3;
    ULONG SHN : 2;
    ULONG IOSQES : 4;
    ULONG IOCQES : 4;
    ULONG Reserved1 : 8;
  } DUMMYSTRUCTNAME;
  ULONG  AsUlong;
} NVME_CONTROLLER_CONFIGURATION, *PNVME_CONTROLLER_CONFIGURATION;

Member

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.EN

Gibt an, ob der Controller für die Verarbeitung von Befehlen aktiviert ist.

Wenn dieser Wert auf 1festgelegt ist, verarbeitet der Controller Befehle basierend auf Schreibvorgängen der Übermittlungswarteschlange Tail Doorbell . Wenn dieser Wert auf 0gelöscht wird, verarbeitet der Controller keine Befehle und postet keine Vervollständigungswarteschlangeneinträge in Vervollständigungswarteschlangen.

Wenn dieses Feld von 1 zu 0wechselt, wird der Controller zurückgesetzt (als Controllerzurücksetzung bezeichnet). Das Zurücksetzen löscht alle E/A-Übermittlungswarteschlangen und E/A-Vervollständigungswarteschlangen, setzt die Admin Übermittlungswarteschlange und Vervollständigungswarteschlange zurück und versetzt die Hardware in einen Leerlaufzustand. Die Zurücksetzung wirkt sich nicht auf PCI Express-Register oder die Admin Warteschlangenregister (AQA, ASQ oder ACQ) aus. Alle anderen Controllerregister und internen Controllerzustände (z. B. Featurewerte, die nicht für alle Energiezustände persistent sind) werden auf ihre Standardwerte zurückgesetzt. Der Controller stellt sicher, dass bei Befehlen, bei denen entsprechende Vervollständigungswarteschlangeneinträge vor dem Zurücksetzungsvorgang an eine E/A-Vervollständigungswarteschlange gesendet wurden, kein Datenverlust auftritt.

Wenn dieses Feld für 0gelöscht wird, wird der Wert des Felds Bereit (RDY) in Controllerstatus vom Controller gelöscht 0 , sobald der Controller bereit ist, wieder aktiviert zu werden. Wenn dieses Feld auf 1festgelegt ist, legt der Controller den Wert des RDY-Felds in Controllerstatus auf 1 fest, wenn er zum Verarbeiten von Befehlen bereit ist. RDY kann auf festgelegt werden, 1 bevor auf Namespaces zugegriffen werden kann.

Das Festlegen dieses Felds von einem 0 auf ein 1 , wenn RDY ein 1ist, oder das Festlegen dieses Felds von "1" auf "0", wenn RDY ein "0" ist, führt zu nicht definierten Ergebnissen. Die Admin Warteschlangenregister (AQA, ASQ und ACQ) werden nur geändert, wenn EN in 0gelöscht wird.

DUMMYSTRUCTNAME.Reserved0

DUMMYSTRUCTNAME.CSS

Gibt den E/A-Befehlssatz an, der für die E/A-Übermittlungswarteschlangen ausgewählt ist.

Hostsoftware wählt nur einen unterstützten E/A-Befehlssatz aus, wie im CSS-Feld unter Controllerfunktionen angegeben.

Dieser Wert dieses Felds kann nur geändert werden, wenn der Controller deaktiviert ist ( das Feld EN ist in 0gelöscht). Der ausgewählte E/A-Befehlssatz wird für alle E/A-Übermittlungswarteschlangen verwendet.

DUMMYSTRUCTNAME.MPS

Gibt die Größe der Hostspeicherseite an. Die Größe der Speicherseite ist (2 ^ (12 + MPS)). Daher beträgt die minimale Größe der Hostspeicherseiten 4 KB und die maximale Größe der Hostspeicherseiten 128 MB.

Der von der Hostsoftware festgelegte Wert muss ein unterstützter Wert sein, wie in den Feldern MPSMAX und MPSMIN der Controllerfunktionen angegeben. Dieses Feld beschreibt den Wert, der für die PRP-Eintragsgröße verwendet wird.

Dieses Feld kann nur geändert werden, wenn EN in 0deaktiviert ist.

DUMMYSTRUCTNAME.AMS

Gibt den zu verwendenden Schiedsmechanismus an.

Dieses Feld kann nur geändert werden, wenn EN in 0deaktiviert ist.

Hostsoftware kann dieses Feld nur auf unterstützte Schiedsmechanismen festlegen, wie im AMS-Feld der Controllerfunktionen angegeben. Wenn dieses Feld auf einen nicht unterstützten Wert festgelegt ist, ist das Verhalten nicht definiert.

DUMMYSTRUCTNAME.SHN

Gibt einen NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS Wert an, der verwendet wird, um die Herunterfahrensverarbeitung zu initiieren, wenn ein Herunterfahren auftritt. Beispielsweise, wenn eine Herunterschaltbedingung erwartet wird.

Für eine normale Benachrichtigung zum Herunterfahren wird erwartet, dass dem Controller Zeit für die Verarbeitung der Benachrichtigung zum Herunterfahren gegeben wird. Bei einer Benachrichtigung zum abrupten Herunterfahren wartet der Host möglicherweise nicht, bis die Verarbeitung des Herunterfahrens abgeschlossen ist, bevor die Stromversorgung verloren geht. Dieses Feld sollte von der Hostsoftware vor dem Herunterschalten und vor jeder Änderung des PCI-Energieverwaltungszustands geschrieben werden. Es wird empfohlen, dieses Feld auch vor einem warmen Neustart zu schreiben.

Informationen zum Abschluss der Herunterfahrensverarbeitung finden Sie im SHST-Wert unter Controllerstatus.

DUMMYSTRUCTNAME.IOSQES

Gibt die Eintragsgröße der E/A-Übermittlungswarteschlange an, die für den ausgewählten E/A-Befehlssatz verwendet wird.

Die erforderlichen und maximalen Werte für dieses Feld werden im SQES angegeben. RequiredEntrySize und SQES. MaxEntrySize-Felder der Datenstruktur "Controller identifizieren " für jeden E/A-Befehlssatz. Der Wert ist in Bytes und wird als Leistung von zwei (2^n) angegeben.

DUMMYSTRUCTNAME.IOCQES

Gibt die Eintragsgröße der E/A-Vervollständigungswarteschlange an, die für den ausgewählten E/A-Befehlssatz verwendet wird.

Die erforderlichen und maximalen Werte für dieses Feld werden in den CQES angegeben. RequiredEntrySize und CQES. MaxEntrySize-Felder der Datenstruktur "Controller identifizieren " für jeden E/A-Befehlssatz. Der Wert ist in Bytes und wird als Leistung von zwei (2^n) angegeben.

DUMMYSTRUCTNAME.Reserved1

AsUlong

Anforderungen

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