NVME_NVM_COMMANDS-Enumeration (nvme.h)
Enthält Werte, die einen Befehl im NVM-Befehlssatz angeben.
Syntax
typedef enum {
NVME_NVM_COMMAND_FLUSH,
NVME_NVM_COMMAND_WRITE,
NVME_NVM_COMMAND_READ,
NVME_NVM_COMMAND_WRITE_UNCORRECTABLE,
NVME_NVM_COMMAND_COMPARE,
NVME_NVM_COMMAND_WRITE_ZEROES,
NVME_NVM_COMMAND_DATASET_MANAGEMENT,
NVME_NVM_COMMAND_VERIFY,
NVME_NVM_COMMAND_RESERVATION_REGISTER,
NVME_NVM_COMMAND_RESERVATION_REPORT,
NVME_NVM_COMMAND_RESERVATION_ACQUIRE,
NVME_NVM_COMMAND_RESERVATION_RELEASE,
NVME_NVM_COMMAND_COPY,
NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND,
NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE,
NVME_NVM_COMMAND_ZONE_APPEND
} NVME_NVM_COMMANDS;
Konstanten
NVME_NVM_COMMAND_FLUSH Der Befehl Flush, der Daten und Metadaten, die den angegebenen Namespaces zugeordnet sind, auf nicht flüchtige Medien committet. Die Leerung gilt für alle Befehle, die vor der Übermittlung des Flush-Befehls abgeschlossen wurden. Der Controller kann auch zusätzliche Daten und/oder Metadaten aus jedem Namespace leeren. |
NVME_NVM_COMMAND_WRITE Der Write-Befehl, der Daten und Metadaten ggf. in den NVM-Controller für die angegebenen logischen Blöcke schreibt. Der Host kann auch Schutzinformationen angeben, die im Rahmen des Vorgangs eingeschlossen werden sollen. Der Befehl verwendet die Felder Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 13, Command Dword 14 und Command Dword 15. Wenn der Befehl PRPs für die Datenübertragung verwendet, werden die Felder Metadatenzeiger, PRP-Eintrag 1 und PRP-Eintrag 2 verwendet. Wenn der Befehl SGLs für die Datenübertragung verwendet, werden die Felder Metadaten-SGL-Segmentzeiger und SGL-Eintrag 1 verwendet. |
NVME_NVM_COMMAND_READ Der Read-Befehl, der ggf. Daten und Metadaten aus dem NVM-Controller für die angegebenen logischen Blöcke liest. Der Befehl kann Schutzinformationen angeben, die im Rahmen des Lesevorgangs überprüft werden sollen. Der Befehl verwendet die Felder Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 13, Command Dword 14 und Command Dword 15. Wenn der Befehl PRPs für die Datenübertragung verwendet, werden die Felder Metadatenzeiger, PRP-Eintrag 1 und PRP-Eintrag 2 verwendet. Wenn der Befehl SGLs für die Datenübertragung verwendet, werden die Felder Metadaten-SGL-Segmentzeiger und SGL-Eintrag 1 verwendet. |
NVME_NVM_COMMAND_WRITE_UNCORRECTABLE Der Befehl Write Uncorrectable, der verwendet wird, um einen Bereich von logischen Blöcken als ungültig zu markieren. Wenn die angegebenen logischen Blöcke nach diesem Vorgang gelesen werden, wird ein Fehler mit nicht wiederhergestelltem Lesefehler status zurückgegeben. Um den ungültigen logischen Block status zu löschen, wird ein Schreibvorgang für diese logischen Blöcke ausgeführt. Die verwendeten Felder sind Die Felder Command Dword 10, Command Dword 11 und Command Dword 12. Alle anderen befehlsspezifischen Felder sind reserviert. |
NVME_NVM_COMMAND_COMPARE Der Compare-Befehl, der die vom Befehl angegebenen logischen Blöcke aus dem Medium liest und die gelesenen Daten mit einem Vergleichsdatenpuffer vergleicht, der im Rahmen des Befehls übertragen wird. Wenn die vom Controller gelesenen Daten und der Vergleichsdatenpuffer ohne Fehlvergleiche gleichwertig sind, wird der Befehl erfolgreich abgeschlossen. Wenn eine Fehlkompilierung auftritt, wird der Befehl mit dem Fehler Compare Failure abgeschlossen. Wenn Metadaten bereitgestellt werden, wird auch ein Vergleich für die Metadaten durchgeführt. Der Befehl verwendet die Felder Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 14 und Command Dword 15. Wenn der Befehl PRPs für die Datenübertragung verwendet, werden die Felder Metadatenzeiger, PRP-Eintrag 1 und PRP-Eintrag 2 verwendet. Wenn der Befehl SGLs für die Datenübertragung verwendet, werden die Felder Metadaten-SGL-Segmentzeiger und SGL-Eintrag 1 verwendet. Alle anderen befehlsspezifischen Felder sind reserviert. |
NVME_NVM_COMMAND_WRITE_ZEROES Der Befehl Nullen schreiben, der verwendet wird, um einen Bereich von logischen Blöcken auf Null festzulegen. Nach erfolgreichem Abschluss dieses Befehls muss der Wert, der von nachfolgenden Lesevorgängen logischer Blöcke in diesem Bereich zurückgegeben wird, Nullen sein, bis ein Schreibvorgang in diesen LBA-Bereich erfolgt. Die Metadaten für diesen Befehl müssen nullen sein, und die Schutzinformationen werden basierend auf CDW12 aktualisiert. PRINFO. Die verwendeten Felder sind Die Felder Command Dword 10, Command Dword 11, Command Dword 12, Command Dword 14 und Command Dword 15. |
NVME_NVM_COMMAND_DATASET_MANAGEMENT Der Befehl Datasetverwaltung, der vom Host verwendet wird, um Attribute für Bereiche logischer Blöcke anzugeben. Dazu gehören Attribute wie die Häufigkeit, mit der Daten gelesen oder geschrieben werden, die Zugriffsgröße und andere Informationen, die zur Optimierung von Leistung und Zuverlässigkeit verwendet werden können. Dieser Befehl ist eine Empfehlung; Ein konformer Controller kann sich entscheiden, basierend auf den bereitgestellten Informationen keine Aktion zu ergreifen. Der Befehl verwendet die Felder Command Dword 10 und Command Dword 11. Wenn der Befehl PRPs für die Datenübertragung verwendet, werden die Felder PRP-Eintrag 1 und PRP-Eintrag 2 verwendet. Wenn der Befehl SGLs für die Datenübertragung verwendet, wird das Feld SGL-Eintrag 1 verwendet. Alle anderen befehlsspezifischen Felder sind reserviert. |
NVME_NVM_COMMAND_RESERVATION_REGISTER Der Befehl Reservierungsregister, der zum Registrieren, Aufheben der Registrierung oder zum Ersetzen eines Reservierungsschlüssels verwendet wird. Der Befehl verwendet den Befehl Dword 10 und eine Datenstruktur des Reservierungsregisters im Arbeitsspeicher. Wenn der Befehl PRPs für die Datenübertragung verwendet, werden die Felder PRP-Eintrag 1 und PRP-Eintrag 2 verwendet. Wenn der Befehl SGLs für die Datenübertragung verwendet, wird das Feld SGL-Eintrag 1 verwendet. Alle anderen befehlsspezifischen Felder sind reserviert. |
NVME_NVM_COMMAND_RESERVATION_REPORT Der Befehl Reservierungsbericht, der eine Datenstruktur für den Reservierungsstatus in den Arbeitsspeicher zurückgibt, die die Registrierung und status eines Namespace beschreibt. Die Größe der Datenstruktur Reservierungsstatus ist eine Funktion der Anzahl von Controllern im NVM-Subsystem, die Hosts zugeordnet sind, die Registranten des Namespace sind (z. B. gibt es für jeden solchen Controller eine Datenstruktur registrierter Controller). |
NVME_NVM_COMMAND_RESERVATION_ACQUIRE Der Befehl Reservierungserwerb, der verwendet wird, um eine Reservierung für einen Namespace abzurufen, eine Reservierung in einem Namespace vorzubehalten und eine reservierung in einem Namespace abzubrechen. Der Befehl verwendet den Befehl Dword 10 und eine Datenstruktur zum Abrufen von Reservierungen im Arbeitsspeicher. Wenn der Befehl PRPs für die Datenübertragung verwendet, werden die Felder PRP-Eintrag 1 und PRP-Eintrag 2 verwendet. Wenn der Befehl SGLs für die Datenübertragung verwendet, wird das Feld SGL-Eintrag 1 verwendet. Alle anderen befehlsspezifischen Felder sind reserviert. |
NVME_NVM_COMMAND_RESERVATION_RELEASE Der Befehl "Reservierungsfreigabe", der zum Freigeben oder Löschen einer Reservierung in einem Namespace verwendet wird. Der Befehl verwendet Command Dword 10 und eine Reservierungsfreigabe-Datenstruktur im Arbeitsspeicher. Wenn der Befehl PRPs für die Datenübertragung verwendet, werden die Felder PRP-Eintrag 1 und PRP-Eintrag 2 verwendet. Wenn der Befehl SGLs für die Datenübertragung verwendet, wird das Feld SGL-Eintrag 1 verwendet. Alle anderen befehlsspezifischen Felder sind reserviert. |
Hinweise
NVM-Befehle werden vom Host übermittelt, wenn der Controller wie im Controllerstatusregister angegeben bereit ist und nachdem die entsprechenden E/A-Übermittlungswarteschlangen und E/A-Abschlusswarteschlangen erstellt wurden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10 |
Kopfzeile | nvme.h |