NdisAllocateNetBufferListPool-Funktion (ndis/nblapi.h)

Rufen Sie die NdisAllocateNetBufferListPool-Funktion auf, um einen Pool mit NET_BUFFER_LIST Strukturen zuzuweisen.

Syntax

NDIS_EXPORTED_ROUTINE NDIS_HANDLE NdisAllocateNetBufferListPool(
  [in, optional] NDIS_HANDLE                           NdisHandle,
  [in]           NET_BUFFER_LIST_POOL_PARAMETERS const *Parameters
);

Parameter

[in, optional] NdisHandle

Ein NDIS-Handle, das während der Initialisierung des Aufrufers abgerufen wurde.

[in] Parameters

Ein Zeiger auf eine NET_BUFFER_LIST_POOL_PARAMETERS-Struktur , die die Parameter für den Pool definiert.

Rückgabewert

NdisAllocateNetBufferListPool gibt ein Handle an den NET_BUFFER_LIST Strukturpool zurück, den NDIS zuordnet. Wenn die Zuordnung nicht erfolgreich war, ist dieses Handle NULL. Dieses Handle ist ein erforderlicher Parameter in nachfolgenden Aufrufen von NDIS-Funktionen, die NET_BUFFER_LIST Strukturen aus diesem Pool zuordnen und freigeben.

Hinweise

In den meisten Fällen weist ein Aufrufer, der eine NET_BUFFER_LIST-Struktur zuordnet, mindestens eine NET_BUFFER-Struktur zu und stellt diese NET_BUFFER_LIST-Struktur in die Warteschlange. Es ist effizienter, NET_BUFFER Strukturen vorab zuzuweisen, wenn Sie einen Pool von NET_BUFFER_LIST Strukturen zuordnen, als NET_BUFFER_LIST Strukturen und NET_BUFFER Strukturen separat zuzuweisen.

Sie können die NdisAllocateNetBufferListPool-Funktion aufrufen, wobei der Wert fAllocateNetBuffer beim Erstellen eines NET_BUFFER_LIST-Strukturpools auf TRUE festgelegt ist. In diesem Fall ist jeder NET_BUFFER_LIST Struktur, die der Aufrufer aus dem Pool zuordnet, eine NET_BUFFER-Struktur vorab zugeordnet. Sie können die NdisAllocateNetBufferAndNetBufferList-Funktion oder die NdisAllocateNetBufferList-Funktion , um NET_BUFFER_LIST Strukturen aus einem solchen Pool zuzuordnen. Rufen Sie NdisAllocateNetBufferAndNetBufferList nur auf, wenn fAllocateNetBuffertrue und DataSize null ist.

Sie können auch NdisAllocateNetBufferListPool aufrufen und das DataSize-Element beim Erstellen eines NET_BUFFER_LIST Strukturpools auf einen Wert ungleich null festlegen. In diesem Fall wird jeder NET_BUFFER_LIST Struktur, die der Aufrufer aus dem Pool zuordnet, eine NET_BUFFER-Struktur, MDL und Daten vorab zugeordnet.

NET_BUFFER Strukturen, MDLs und Datenpuffer, die zugeordnet sind NdisAllocateNetBufferAndNetBufferList oder NdisAllocateNetBufferList sollte nicht getrennt von der NET_BUFFER_LIST-Struktur freigegeben werden. Solche Strukturen werden mit der NET_BUFFER_LIST-Struktur freigegeben, wenn Sie die NdisFreeNetBufferList-Funktion aufrufen.

Rufen Sie die folgenden NdisFreeNetBufferListPool-Funktion , um einen NET_BUFFER_LIST-Strukturpool freizugeben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Universell
Header ndis/nblapi.h (include ndis.h)
Bibliothek Ndis.lib
DLL Ndis.sys
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferListPool(ndis), NdisAllocateNetBufferListPool_InitFail(ndis)

Weitere Informationen

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferAndNetBufferList

NdisAllocateNetBufferList

NdisFreeNetBufferList

NdisFreeNetBufferListPool