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;
Angehörige
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 des VirtualAddress- und DmaLogicalAddress- bis zum Anfang der gültigen Paketnutzlast. Dieser Wert ist kleiner oder gleich dem Wert von Capacity.
Rufen Sie NetExtensionGetFragmentVirtualAddressauf, um die virtuelle Adresse für dieses Fragment abzurufen.
Rufen Sie NetExtensionGetFragmentLogicalAddressauf, 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 beliebige Zwecke 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.
Bemerkungen
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 nicht zusammenhängend.
Anforderungen
Anforderung | Wert |
---|---|
Minimale KMDF-Version | 1.29 |
Header- | fragment.h |