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 1
festgelegt 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 1
festgelegt ist, verarbeitet der Controller Befehle basierend auf Schreibvorgängen der Übermittlungswarteschlange Tail Doorbell .
Wenn dieser Wert auf 0
gelöscht wird, verarbeitet der Controller keine Befehle und postet keine Vervollständigungswarteschlangeneinträge in Vervollständigungswarteschlangen.
Wenn dieses Feld von 1
zu 0
wechselt, 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 0
gelö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 1
festgelegt 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 1
ist, 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 0
gelö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 0
gelö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 0
deaktiviert ist.
DUMMYSTRUCTNAME.AMS
Gibt den zu verwendenden Schiedsmechanismus an.
Dieses Feld kann nur geändert werden, wenn EN in 0
deaktiviert 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 |