Freigeben über


NET_BUFFER_LIST_POOL_PARAMETERS-Struktur (ndis/nblapi.h)

Die NET_BUFFER_LIST_POOL_PARAMETERS-Struktur definiert die Parameter für einen Pool von NET_BUFFER_LIST Strukturen.

Syntax

typedef struct _NET_BUFFER_LIST_POOL_PARAMETERS {
  NDIS_OBJECT_HEADER Header;
  UCHAR              ProtocolId;
  BOOLEAN            fAllocateNetBuffer;
  USHORT             ContextSize;
  ULONG              PoolTag;
  ULONG              DataSize;
  ULONG              Flags;
} NET_BUFFER_LIST_POOL_PARAMETERS, *PNET_BUFFER_LIST_POOL_PARAMETERS;

Member

Header

Typ, Revision und Größe der NET_BUFFER_LIST_POOL_PARAMETERS-Struktur . Dieser Member ist als NDIS_OBJECT_HEADER-Struktur formatiert.

Der Miniporttreiber muss das Type-Element von Header auf NDIS_OBJECT_TYPE_DEFAULT festlegen. Um die Version der NET_BUFFER_LIST_POOL_PARAMETERS-Struktur anzugeben, muss der Treiber den Revisionsmember von Header auf den folgenden Wert festlegen:

NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1

Originalversion für NDIS 6.0.

Legen Sie das Element Größe auf NDIS_SIZEOF_NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1 fest.

ProtocolId

Der Typ des Aufrufers. Miniport-, Filter- und Zwischentreiber legen dieses Feld auf Null (NDIS_PROTOCOL_ID_DEFAULT) fest. Protokolltreiber verwenden einen der folgenden Werte:

NDIS_PROTOCOL_ID_DEFAULT

Gibt einen Standardprotokolltreiberbezeichner an.

NDIS_PROTOCOL_ID_TCP_IP

Gibt das TCP/IP-Protokoll an.

NDIS_PROTOCOL_ID_IPX

Gibt das IPX-Protokoll an.

NDIS_PROTOCOL_ID_NBF

Gibt das NetBEUI-Protokoll an.

fAllocateNetBuffer

Wenn dieser Member auf TRUE festgelegt ist, ordnet NDIS einen Pool mit NET_BUFFER_LIST Strukturen zu. Jede zugeordnete NET_BUFFER_LIST-Struktur wird mit einer NET_BUFFER-Struktur initialisiert.

Wenn dieser Member auf FALSE festgelegt ist, ordnet NDIS einen Pool mit NET_BUFFER_LIST Strukturen zu. Jede zugeordnete NET_BUFFER_LIST-Struktur wird nicht so initialisiert, dass sie NET_BUFFER Strukturen enthält.

Weitere Informationen finden Sie im Abschnitt mit Hinweisen.

ContextSize

Die Größe der vorab zugewiesenen NET_BUFFER_LIST_CONTEXT Strukturdaten in Bytes, die NDIS für die NET_BUFFER_LIST Strukturen in diesem Pool bereitstellen sollte. ContextSize muss ein Vielfaches des Werts sein, der durch MEMORY_ALLOCATION_ALIGNMENT definiert wird.

PoolTag

Ein Kernelpooltag, das der Aufrufer verwendet, wenn er NET_BUFFER_LIST Strukturen aus diesem Pool zuordnet. Das Tag ist eine durch einfache Anführungszeichen getrennte Zeichenfolge mit bis zu vier Zeichen, die normalerweise in umgekehrter Reihenfolge angegeben sind. Das Kernelpooltag hilft NDIS dabei, den Besitzer der NET_BUFFER_LIST Strukturen zu identifizieren, die aus diesem Pool zugeordnet sind.

DataSize

Die Standarddatengröße in Byte für Datenpuffer, die diesem NET_BUFFER_LIST Pool zugeordnet sind, sofern vorhanden. NDIS verwendet diesen Wert, um die Größe aller Datenpuffer festzulegen, die für alle zugeordneten NET_BUFFER-Strukturen zugeordnet werden.

Weitere Informationen finden Sie im Abschnitt mit Hinweisen.

Flags

Das folgende Flag ist definiert:

NET_BUFFER_LIST_POOL_FLAG_VERIFY 0x00000001

Wenn dieses Flag festgelegt ist, verwendet NDIS nicht sofort NET_BUFFER_LISTs aus diesem Pool. Stattdessen werden Zuordnungen als "kein Zugriff" markiert, wenn sie freigegeben werden, sodass Treiber Use-After-Free-Fehler erkennen können.

Hinweise

Wenn fAllocateNetBuffer auf FALSE festgelegt ist, ordnet NDIS keine NET_BUFFER Strukturen zu, und DataSize sollte auf Null festgelegt werden.

Wenn DataSize nicht null ist, muss fAllocateNetBuffer auf TRUE festgelegt werden. Dies bewirkt, dass NDIS die NET_BUFFER-Struktur einem Datenpuffer der angegebenen Größe zuordnet.

Wenn DataSize null und fAllocateNetBufferauf TRUE festgelegt ist, ordnet NDIS die NET_BUFFER Struktur zu, aber nicht den Datenpuffer.

Der Parameter Parameters der NdisAllocateNetBufferListPool-Funktion enthält einen Zeiger auf eine NET_BUFFER_LIST_POOL_PARAMETERS-Struktur .

Anforderungen

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

Weitere Informationen

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_DATA

NdisAllocateNetBufferListPool