Freigeben über


NVME_CONTROLLER_CAPABILITIES Union (nvme.h)

Enthält schreibgeschützte Werte, die die grundlegenden Funktionen des Controllers zum Hosten von Software angeben.

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

Syntax

typedef union {
  struct {
    ULONGLONG MQES : 16;
    ULONGLONG CQR : 1;
    ULONGLONG AMS_WeightedRoundRobinWithUrgent : 1;
    ULONGLONG AMS_VendorSpecific : 1;
    ULONGLONG Reserved0 : 5;
    ULONGLONG TO : 8;
    ULONGLONG DSTRD : 4;
    ULONGLONG NSSRS : 1;
    ULONGLONG CSS_NVM : 1;
    ULONGLONG CSS_Reserved0 : 1;
    ULONGLONG CSS_Reserved1 : 1;
    ULONGLONG CSS_Reserved2 : 1;
    ULONGLONG CSS_Reserved3 : 1;
    ULONGLONG CSS_Reserved4 : 1;
    ULONGLONG CSS_MultipleIo : 1;
    ULONGLONG CSS_AdminOnly : 1;
    ULONGLONG Reserved2 : 3;
    ULONGLONG MPSMIN : 4;
    ULONGLONG MPSMAX : 4;
    ULONGLONG Reserved3 : 8;
  } DUMMYSTRUCTNAME;
  ULONGLONG AsUlonglong;
} NVME_CONTROLLER_CAPABILITIES, *PNVME_CONTROLLER_CAPABILITIES;

Elemente

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.MQES

Gibt die maximale größe der einzelnen Warteschlangen an, die der Controller unterstützt.

Dieser Wert gilt für jede der E/A-Übermittlungswarteschlangen und E/A-Vervollständigungswarteschlangen, die die Hostsoftware erstellt.

Dies ist ein 0-basierter Wert. Der Mindestwert ist 1h, der zwei Warteschlangeneinträge angibt.

DUMMYSTRUCTNAME.CQR

Gibt an, ob E/A-Übermittlungswarteschlangen und E/A-Vervollständigungswarteschlangen vom Controller erforderlich sind, um physisch zusammenhängend zu sein.

Wenn dieses Feld auf 1 festgelegt ist, erfordert der Controller, dass E/A-Übermittlungswarteschlangen und E/A-Vervollständigungswarteschlangen physisch zusammenhängend sind. Wenn dieses Feld gelöscht 0wird, unterstützt der Controller E/A-Übermittlungswarteschlangen und E/A-Vervollständigungswarteschlangen, die nicht physisch zusammenhängend sind.

Wenn dieses Feld auf 1 festgelegt ist, wird das physische zusammenhängende Bit (das PC-Feld) in der E/A-Übermittlungswarteschlange erstellen und die Befehle "E/A-Vervollständigungswarteschlange erstellen" auf "E/A-Vervollständigungswarteschlange" festgelegt.1

DUMMYSTRUCTNAME.AMS_WeightedRoundRobinWithUrgent

Gibt an, ob der Gewichtete RoundRobin mit dem Vermittlungsmechanismus für dringende Prioritätsklassen vom Controller unterstützt wird.

Wenn dieses Feld auf <a0/> festgelegt ist, wird der Mechanismus "Gewichtetes RoundRobin" mit dringender Prioritätsklassenvermittlung unterstützt.

Diese felder AMS_WeightedRoundRobinWithUrgent und AMS_VendorSpecific geben die optionalen Vermittlungsmechanismen an, die vom Controller unterstützt werden. Der Roundrobin-Schiedsmechanismus ist nicht aufgeführt, da alle Controller diesen Schiedsmechanismus unterstützen müssen.

DUMMYSTRUCTNAME.AMS_VendorSpecific

Gibt an, ob der anbieterspezifische Vermittlungsmechanismus vom Controller unterstützt wird.

Wenn dieses Feld auf 1 festgelegt ist, wird der Anbieterspezifische Vermittlungsmechanismus unterstützt.

DUMMYSTRUCTNAME.Reserved0

Ein reserviertes Feld (Bits 19 bis 23).

DUMMYSTRUCTNAME.TO

Gibt die schlechteste Zeit an, zu der die Hostsoftware auf den Ready -Wert (RDY) im Controllerstatus wartet, um von:

Dieser schlechteste Fall kann nach Ereignissen wie einem abrupten Herunterfahren oder einer Aktivierung eines neuen Firmwareimages auftreten. Typische Zeiten werden voraussichtlich viel kürzer sein.

Der Wert dieses Felds beträgt 500 Millisekunden.

DUMMYSTRUCTNAME.DSTRD

Gibt den Abstand zwischen den Doorbell-Registern an.

Jedes Übermittlungswarteschlangen- und Vervollständigungswarteschlangen-Doorbell-Register beträgt 32-Bit-Größe. Die Stride wird wie (2 ^ (2 + DSTRD)) in Byte angegeben.

Ein Wert von 0h 4 Bytes gibt einen Abstand von 4 Bytes an, bei dem die Türglockenregister ohne reservierten Platz zwischen den einzelnen Registern verpackt sind.

DUMMYSTRUCTNAME.NSSRS

Gibt an, ob der Controller das in der NVME_NVM_SUBSYSTEM_RESET Struktur definierte NVM-Subsystemzurücksetzungsfeature unterstützt.

Wenn dieses Feld auf 1 festgelegt ist, unterstützt der Controller die Funktion zum Zurücksetzen des NVM-Subsystems. hen dieses Feld wird gelöscht, 0der Controller unterstützt nicht das NVM Subsystem Reset-Feature.

DUMMYSTRUCTNAME.CSS_NVM

Dieses Feld gibt an, ob der NVM-Befehlssatz vom Controller unterstützt wird. Mindestens ein Befehlssatz muss unterstützt werden.

Wenn dieses Feld auf 1 festgelegt ist, wird der NVM-Befehlssatz unterstützt.

Die CSS_Reserved0 bis CSS_Reserved6 Felder sind für andere E/A-Befehlssätze reserviert, wenn der Wert eines dieser Felder auf "E/A" festgelegt 1ist, wird der entsprechende E/A-Befehlssatz unterstützt.

DUMMYSTRUCTNAME.CSS_Reserved0

DUMMYSTRUCTNAME.CSS_Reserved1

DUMMYSTRUCTNAME.CSS_Reserved2

DUMMYSTRUCTNAME.CSS_Reserved3

DUMMYSTRUCTNAME.CSS_Reserved4

DUMMYSTRUCTNAME.CSS_MultipleIo

DUMMYSTRUCTNAME.CSS_AdminOnly

DUMMYSTRUCTNAME.Reserved2

DUMMYSTRUCTNAME.MPSMIN

Gibt die minimale Größe der Hostspeicherseite an, die der Controller unterstützt.

Die minimale Größe der Arbeitsspeicherseite ist (2 ^ (12 + MPSMIN)).

Der Host konfiguriert keine Speicherseitengröße im MPS-Feld von NVME_CONTROLLER_CONFIGURATION , die kleiner als dieser Wert ist.

DUMMYSTRUCTNAME.MPSMAX

Gibt die maximale Größe der Hostspeicherseite an, die der Controller unterstützt.

Die maximale Größe der Speicherseite ist (2 ^ (12 + MPSMAX)).

Der Host konfiguriert keine Speicherseitengröße im MPS-Feld von NVME_CONTROLLER_CONFIGURATION , die größer als dieser Wert ist.

DUMMYSTRUCTNAME.Reserved3

AsUlonglong

Anforderungen

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

Siehe auch