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 0h
gelöscht werden.
AsUlonglong
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10 |
Kopfzeile | nvme.h |