Freigeben über


NVME_COMPLETION_QUEUE_HEAD_DOORBELL Union (nvme.h)

Definiert das Doorbell-Register, das den Head-Einstiegspunkt für die Abschlusswarteschlange y aktualisiert.

Der Wert von "y " entspricht dem Warteschlangenbezeichner, dem 16-Bit-ID-Wert, der der Warteschlange zugewiesen ist, wenn sie erstellt wird. Dieser Wert gibt die Einträge der Vervollständigungswarteschlange an, die von Hostsoftware verarbeitet wurden.

Der Offset der Abschlusswarteschlange y Head Doorbell (CQyHDBL) lautet: (1000h + ((2y + 1) * (4 << CAP.DSTRD)))

Dabei CAP.DSTRD handelt es sich um den Wert des DSTRD-Felds in NVME_CONTROLLER_CAPABILITIES.

Syntax

typedef union {
  struct {
    ULONG CQH : 16;
    ULONG Reserved0 : 16;
  } DUMMYSTRUCTNAME;
  ULONG  AsUlong;
} NVME_COMPLETION_QUEUE_HEAD_DOORBELL, *PNVME_COMPLETION_QUEUE_HEAD_DOORBELL;

Elemente

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.CQH

Ein Lese-/Schreibfeld, das den neuen Wert des Einstiegspunkts "Abschlusswarteschlangenkopf" angibt.

Dieser Wert überschreibt alle zuvor bereitgestellten CQH-Werte (Completion Queue Head). Der Unterschied zwischen dem letzten CQH-Schreibvorgang und dem aktuellen CQH-Einstiegspunktschreibpunkt gibt die Anzahl der Einträge an, die jetzt vom Controller in der Abschlusswarteschlange wiederverwenden können.

Hinweis

Der Vervollständigungswarteschlangenrollover muss berücksichtigt werden.

DUMMYSTRUCTNAME.Reserved0

Ein reserviertes Schreibschutzfeld.

AsUlong

Bemerkungen

Der Gastgeber sollte die Türglockenregister nicht lesen. Wenn ein Doorbell-Register gelesen wird, ist der zurückgegebene Wert anbieterspezifisch. Schreiben in eine nicht vorhandene Abschlusswarteschlange Head Doorbell hat nicht definierte Ergebnisse.

Hostsoftware sollte die Vervollständigungswarteschlangeneinträge in Abschlusswarteschlangen weiterhin verarbeiten, unabhängig davon, ob einträge in einer Übermittlungswarteschlange verfügbar sind.

Anforderungen

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