NET_BUFFER_DATA-Struktur (ndis/nbl.h)

Die NET_BUFFER_DATA-Struktur enthält Informationen zum Verwalten der Datenpuffer, die an eine NET_BUFFER-Struktur angefügt sind, und identifiziert die nächste NET_BUFFER-Struktur in einer Liste von NET_BUFFER-Strukturen.

Syntax

typedef struct _NET_BUFFER_DATA {
  NET_BUFFER             *Next;
  MDL                    *CurrentMdl;
  ULONG                  CurrentMdlOffset;
  NET_BUFFER_DATA_LENGTH NbDataLength;
  MDL                    *MdlChain;
  ULONG                  DataOffset;
} NET_BUFFER_DATA, *PNET_BUFFER_DATA;

Member

Next

Ein Zeiger auf die nächste NET_BUFFER-Struktur in einer verknüpften Liste von NET_BUFFER-Strukturen. Wenn diese Struktur die letzte NET_BUFFER Struktur in der Liste ist, ist dieser Member NULL.

CurrentMdl

Ein Zeiger auf die erste MDL, die der aktuelle Treiber verwendet. Dieses Element bietet eine Optimierung, die die Leistung verbessert, indem alle MDLs übersprungen werden, die vom aktuellen Treiber nicht verwendet werden.

CurrentMdlOffset

Der Offset in Bytes bis zum Anfang des verwendeten Datenbereichs in der MDL, die vom CurrentMdl-Member angegeben wird.

NbDataLength

Die Länge des verwendeten Datenbereichs in Bytes in der MDL-Kette. Die maximale Länge beträgt 0xFFFFFFFF Bytes.

MdlChain

Ein Zeiger auf eine verknüpfte Liste von MDLs, die einen Datenpuffer zuordnen. Der Datenpuffer speichert die Netzwerkdaten.

DataOffset

Der Offset in Bytes vom Anfang der MDL-Kette bis zum Anfang der Netzwerkdaten in der MDL-Kette. Dieser Offset ist auch die Größe des nicht verwendeten Datenbereichs in Bytes.

Hinweise

Die NET_BUFFER_HEADER-Struktur enthält eine NET_BUFFER_DATA-Struktur, die Daten für die NET_BUFFER-Struktur definiert. Um auf die Member von NET_BUFFER_DATA zuzugreifen, verwenden Sie die NdisRetreatNetBufferDataStart und NdisAdvanceNetBufferDataStart-Funktionen und die folgenden Makros:

NET_BUFFER_NEXT_NB

NET_BUFFER_FIRST_MDL

NET_BUFFER_DATA_OFFSET

NET_BUFFER_DATA_LENGTH

NET_BUFFER_CURRENT_MDL

NET_BUFFER_CURRENT_MDL_OFFSET
Hinweis Die C- und C++-Compiler verwenden unterschiedliche Definitionen für diese Makros. Wenn die Makros nicht verwendet werden, kann dies beim Wechseln von Compilern zu Problemen führen.
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Kopfzeile ndis/nbl.h (include ndis.h)

Weitere Informationen

NET_BUFFER

NET_BUFFER_CURRENT_MDL

NET_BUFFER_CURRENT_MDL_OFFSET

NET_BUFFER_DATA_LENGTH

NET_BUFFER_DATA_OFFSET

NET_BUFFER_FIRST_MDL

NET_BUFFER_HEADER

NET_BUFFER_NEXT_NB

NdisAdvanceNetBufferDataStart NdisRetreatNetBufferDataStart