NET_BUFFER Data Packaging

Die Datenverpackung wurde in NDIS 6.0 neu gestaltet. Die Auf der NDIS_PACKET-Struktur basierende Sende- und Empfangsarchitektur 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 Microsoft-Netzwerktreiberstapel der nächsten Generation, einschließlich TCP/IP-Transport und Winsock, verwenden NET_BUFFER Datenpaketerstellung. Die einheitliche Datenverpackung im gesamten Treiberstapel macht das Erneute Packen von Daten überflüssig, vereinfacht die Datenverarbeitung und reduziert die Anzahl von Funktionsaufrufen.

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

NDIS gibt die Datenbackfill-Anforderungen eines Treibers an treiberübergreifende Treiber weiter. Beim Zuweisen von NET_BUFFER- und NET_BUFFER_LIST-Strukturen für das Senden von Daten belegt ein Treiber auf höherer Ebene genügend Datenspeicherplatz, um alle Treiber auf niedrigerer Ebene im Stapel aufzunehmen. Daher müssen Treiber auf niedrigerer Ebene keinen zusätzlichen Pufferspeicherplatz zuweisen, um ebenenspezifische Header aufzunehmen. Stattdessen können sie den vorab zugewiesenen Ausfüllbereich für diesen Zweck verwenden.

Weitere Informationen zur NET_BUFFER-Architektur finden Sie unter NET_BUFFER-Architektur.