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) |