Freigeben über


NET_BUFFER Datenverpackung

Die Datenverpackung wurde in NDIS 6.0 neu gestaltet. Die Send and Receive-Architektur, die auf der NDIS_PACKET-Struktur basiert, wurde durch eine Architektur ersetzt, die auf NET_BUFFER und NET_BUFFER_LIST Strukturen basiert. Eine NET_BUFFER Struktur ist das funktionale Äquivalent einer NDIS_PACKET Struktur. Eine NET_BUFFER-Struktur gibt einen Puffer (MDL-Kette) für Netzwerkdaten sowie reservierten Speicherplatz für NDIS-, Protokolltreiber- und Miniporttreiber an. NET_BUFFER Strukturen können in einer Liste verknüpft werden, die durch eine NET_BUFFER_LIST Struktur beschrieben wird. Eine NET_BUFFER_LIST-Struktur bietet auch Speicher für Out-of-Band-Daten (OOB), die für alle NET_BUFFER Strukturen in der Liste gelten.

Alle Komponenten im Netzwerktreiberstapel der nächsten Generation von Microsoft, einschließlich tcp/IP-Transport und Winsock, verwenden NET_BUFFER Datenpaketierung. Einheitliche Datenverpackungen im gesamten Treiberstapel vermeiden die Notwendigkeit, Daten neu zu packen, die Datenverarbeitung zu vereinfachen und die Anzahl der Funktionsaufrufe zu reduzieren.

Um ältere Treiber, die NDIS_PACKET Strukturen verwenden, zu berücksichtigen, übersetzt NDIS 6.0 NDIS_PACKET Strukturen in NET_BUFFER Strukturen und umgekehrt. Diese Übersetzung ist für NDIS-Treiber transparent.

NDIS verteilt die Datenrückfüllanforderungen eines Treibers an höhere Treiber. Beim Zuweisen von NET_BUFFER- und NET_BUFFER_LIST Strukturen für das Senden von Daten weist ein Treiber auf höherer Ebene genügend Datenraum zu, um alle Treiber auf niedrigerer Ebene im Stapel aufzunehmen. Daher müssen Treiber auf niedrigerer Ebene keinen zusätzlichen Pufferraum zuweisen, um layerspezifische Header zu berücksichtigen. Stattdessen können sie den vorallocated Backfill-Platz für diesen Zweck verwenden.

Weitere Informationen zur architektur NET_BUFFER finden Sie unter NET_BUFFER Architecture.