NVME_PRP_ENTRY Union (nvme.h)

Enthält Felder, die die Seitenbasisadresse und den Seitenoffset (PBAO) eines Zeigers auf eine Seite des physischen Arbeitsspeichers angeben.

Ein PRP-Eintrag (Physical Region Page) ist ein Zeiger auf eine Seite des physischen Speichers. PRPs werden als Scatter/Gather-Mechanismus für Datenübertragungen zwischen Controller und Speicher verwendet. Um effiziente Datenübertragungen außerhalb der Reihenfolge zwischen Controller und Host zu ermöglichen, haben PRP-Einträge eine feste Größe.

Die Größe des physischen Speichers wird von der Hostsoftware im Feld MPS der Controllerkonfigurationsstruktur konfiguriert, und die Größe des Felds Offset wird durch den MPS-Wert bestimmt.

Diese Struktur wird in den Feldern PRP1 und PRP2 der NVME_COMMAND-Struktur verwendet.

Syntax

typedef union {
  struct {
    ULONGLONG Reserved0 : 2;
    ULONGLONG PBAO : 62;
  } DUMMYSTRUCTNAME;
  ULONGLONG AsUlonglong;
} NVME_PRP_ENTRY, *PNVME_PRP_ENTRY;

Member

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.Reserved0

Ein reserviertes Feld.

DUMMYSTRUCTNAME.PBAO

Gibt die 64-Bit-Seitenadresse des physischen Speichers an.

Die unteren Bits (n:2) dieses Felds geben den Offset innerhalb der Speicherseite an. Wenn die Größe der Speicherseite 4 KB beträgt, bilden Bits 02:11 den Offset; Wenn die Größe der Speicherseite 8 KB beträgt, bilden Bits 02:12 den Offset usw.

Wenn dieser Eintrag nicht der erste PRP-Eintrag im Befehl oder ein PRP-Listenzeiger in einem Befehl ist, sollte der Offset-Teil dieses Felds in 0hgelöscht werden.

AsUlonglong

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10
Kopfzeile nvme.h