Freigeben über


NET_PACKET-Struktur (packet.h)

Stellt ein einzelnes Netzwerkpaket dar.

Syntax

typedef struct _NET_PACKET {
  UINT32            FragmentIndex;
  UINT16            FragmentCount;
  NET_PACKET_LAYOUT Layout;
  UINT8             Ignore : 1;
  UINT8             Scratch : 1;
  UINT8             Reserved1 : 6;
} NET_PACKET;

Member

FragmentIndex

Der Index im Fragmentring des ersten NET_FRAGMENT Struktur in der Nutzlast dieses Pakets.

FragmentCount

Die Anzahl der NET_FRAGMENT Strukturen, die zu diesem Paket gehören.

Layout

Eine NET_PACKET_LAYOUT-Struktur .

Wenn der Hoststapel für Übertragungswarteschlangen eine Aufgabenauslagerung aktiviert hat, die einen Protokollheader verwendet, gibt einen schreibgeschützten Offset für jedes Protokollfeld an. Wenn beispielsweise die TCP-Prüfsummenauslagerung aktiviert ist, gibt dieses Element den Offset zum TCP-Header an. Andernfalls ist dieser Member leer.

Wenn der Hoststapel für Empfangswarteschlangen eine Aufgabenauslagerung aktiviert hat, die einen Protokollheader verwendet, legen Sie die Flags Layer2Type, Layer3Type und Layer4Type fest. Wenn keine Aufgabe ausgeladen wird, ist dieser Member leer.

Ignore

Für Empfangswarteschlangen legt der Client dieses Feld fest, um zu verhindern, dass das Paket für den Host angezeigt wird. Wenn beispielsweise bei der Hardware beim Schreiben von Bytes in diesen Datenpuffer für die Fragmente dieses Pakets ein DMA-Fehler aufgetreten ist, kann der Client dieses Feld so festlegen, dass das Teilpaket gelöscht wird.

Für Übertragungswarteschlangen ist dieses Feld schreibgeschützt. Wenn festgelegt, bedeutet dies, dass der Client das Paket nicht übertragen soll.

Scratch

Ein Bitfeldwert, den der Client für jeden Zweck verwenden kann. Wenn der NET_PACKET wiederverwendet wird, wird dieser Wert auf Null zurückgesetzt.

Reserved1

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

Hinweise

Jede NET_PACKET-Struktur stellt einen einzelnen Netzwerkframe dar und enthält grundlegende Metadaten, die für alle Pakete gelten, z. B. das Rahmenlayout. Eine NET_PACKET enthält mindestens eine NET_FRAGMENT , die den Speicherort im Systemspeicher beschreibt, an dem sich die Paketdaten befinden.

Die NET_PACKET-Struktur kann ein Element in einer NET_RING-Struktur sein.

Anforderungen

Anforderung Wert
KMDF-Mindestversion 1.29
UMDF-Mindestversion 2.33
Kopfzeile packet.h