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 Controllerfunktionen (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;
Member
DUMMYSTRUCTNAME
DUMMYSTRUCTNAME.MQES
Gibt die maximale individuelle Warteschlangengröße an, die der Controller unterstützt.
Dieser Wert gilt für alle E/A-Übermittlungswarteschlangen und E/A-Vervollständigungswarteschlangen, die von der Hostsoftware erstellt werden.
Dies ist ein auf 0 basierender 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 physisch zusammenhängend sein müssen.
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 auf 0
gelöscht wird, 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 Physisch zusammenhängende Bit (das FELD PC ) in den Befehlen E/A-Übermittlungswarteschlange erstellen und E/A-Vervollständigungswarteschlange erstellen auf 1
festgelegt.
DUMMYSTRUCTNAME.AMS_WeightedRoundRobinWithUrgent
Gibt an, ob der Mechanismus "Weighted RoundRobin" mit dringender Prioritätsklasse vom Controller unterstützt wird.
Wenn dieses Feld auf 1
festgelegt ist, wird der Schiedsmechanismus für gewichtetes Roundrobin mit dringender Prioritätsklasse unterstützt.
Diese AMS_WeightedRoundRobinWithUrgent und AMS_VendorSpecific Felder geben die optionalen Schiedsmechanismen an, die vom Verantwortlichen 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 Schiedsmechanismus vom Controller unterstützt wird.
Wenn dieses Feld auf 1
festgelegt ist, wird der anbieterspezifische Schiedsmechanismus unterstützt.
DUMMYSTRUCTNAME.Reserved0
Ein reserviertes Feld (Bits 19 bis 23).
DUMMYSTRUCTNAME.TO
Gibt die schlechteste Zeit an, zu der die Hostsoftware auf den Wert Bereit (RDY) im Controllerstatus wartet, um von zu wechseln:
-
0
nach1
dem EN-Wert in NVME_CONTROLLER_CONFIGURATION von0
zu1
wechselt oder -
1
nach0
dem EN-Wert in NVME_CONTROLLER_CONFIGURATION wechselt von1
zu0
.
Diese schlechteste Zeit kann nach Ereignissen wie einem abrupten Herunterfahren oder der Aktivierung eines neuen Firmwareimages auftreten. Typische Zeiten werden voraussichtlich viel kürzer sein.
Der Wert dieses Felds beträgt 500 Millisekundeneinheiten.
DUMMYSTRUCTNAME.DSTRD
Gibt den Schritt zwischen Klingelregistern an.
Jedes Doorbell-Register für Übermittlungswarteschlange und Vervollständigungswarteschlange hat eine Größe von 32 Bit. Der Stride wird als (2 ^ (2 + DSTRD))
in Bytes angegeben.
Der Wert von 0h
gibt einen Schritt von 4 Bytes an, wobei die Klingelregister ohne reservierten Speicherplatz zwischen den einzelnen Registern gepackt werden.
DUMMYSTRUCTNAME.NSSRS
Gibt an, ob der Controller die funktion zum Zurücksetzen des NVM-Subsystems unterstützt, die in der NVME_NVM_SUBSYSTEM_RESET-Struktur definiert ist.
Wenn dieses Feld auf 1
festgelegt ist, unterstützt der Controller die NvM-Subsystemzurücksetzungsfunktion.
Hen dieses Feld ist auf 0
deaktiviert, unterstützt der Controller die NVM-Subsystemzurücksetzungsfunktion nicht.
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 über CSS_Reserved6 Felder sind für andere E/A-Befehlssätze reserviert. Wenn der Wert eines dieser Felder auf 1
festgelegt ist, 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 Mindestgröße der Speicherseite ist (2 ^ (12 + MPSMIN))
.
Der Host konfiguriert keine Speicherseitengröße im MPS-Feldvon NVME_CONTROLLER_CONFIGURATION , die kleiner als dieser Wert ist.
DUMMYSTRUCTNAME.MPSMAX
Gibt die maximale Größe der Hostspeicherseiten an, die der Controller unterstützt.
Die maximale Größe der Speicherseite ist (2 ^ (12 + MPSMAX))
.
Der Host konfiguriert keine Speicherseitengröße im MPS-Feldvon NVME_CONTROLLER_CONFIGURATION , die größer als dieser Wert ist.
DUMMYSTRUCTNAME.Reserved3
AsUlonglong
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10 |
Kopfzeile | nvme.h |