NET_FRAGMENT-Struktur (fragment.h)

Stellt einen zusammenhängenden Puffer im Arbeitsspeicher dar.

Syntax

typedef struct _NET_FRAGMENT {
  UINT64 ValidLength : 26;
  UINT64 Capacity : 26;
  UINT64 Offset : 10;
  UINT64 Scratch : 1;
  UINT64 OsReserved_Bounced : 1;
} NET_FRAGMENT;

Member

ValidLength

Enthält die Länge der Paketnutzlast. Dieser Wert ist kleiner oder gleich dem Wert von Capacity.

Bei Übertragungswarteschlangen ist dieser Wert schreibgeschützt.

Capacity

Enthält die Gesamtlänge des Paketpuffers.

Bei Übertragungswarteschlangen ist dieser Wert schreibgeschützt.

Offset

Enthält den Offset vom Anfang von VirtualAddress und DmaLogicalAddress bis zum Anfang der gültigen Paketnutzlast. Dieser Wert ist kleiner oder gleich dem Wert von Capacity.

Rufen Sie NetExtensionGetFragmentVirtualAddress auf, um die virtuelle Adresse für dieses Fragment zu erhalten.

Rufen Sie NetExtensionGetFragmentLogicalAddress auf, um die logische DMA-Adresse für dieses Fragment abzurufen.

Bei Übertragungswarteschlangen ist dieser Wert schreibgeschützt.

Scratch

Ein Bitfeldwert, den der Client für jeden Zweck verwenden kann. Wenn die NET_PACKET , zu der dieses Fragment gehört, wiederverwendet wird, wird dieser Wert auf Null zurückgesetzt.

OsReserved_Bounced

Reserviert. Clienttreiber dürfen diesen Wert nicht lesen oder schreiben.

Hinweise

Eine einzelne NET_PACKET-Struktur enthält Verweise auf eine oder mehrere NET_FRAGMENT-Strukturen .

Während jedes Fragment ein nahezu zusammenhängender Speicherpuffer ist, ist ein Paket, das mehr als ein Fragment enthält, praktisch unauffällig.

Anforderungen

Anforderung Wert
KMDF-Mindestversion 1.29
Kopfzeile fragment.h