Partager via


Fonction NdisAllocateNetBufferListPool (ndis/nblapi.h)

Appelez la fonction NdisAllocateNetBufferListPool pour allouer un pool de structures NET_BUFFER_LIST .

Syntaxe

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

Paramètres

[in, optional] NdisHandle

Handle NDIS obtenu lors de l’initialisation de l’appelant.

[in] Parameters

Pointeur vers une structure NET_BUFFER_LIST_POOL_PARAMETERS qui définit les paramètres du pool.

Valeur retournée

NdisAllocateNetBufferListPool retourne un handle au pool de structures NET_BUFFER_LIST que NDIS alloue. Si l’allocation a échoué, ce handle est NULL. Ce handle est un paramètre obligatoire dans les appels ultérieurs aux fonctions NDIS qui allouent et libèrent des structures NET_BUFFER_LIST de ce pool.

Remarques

Dans la plupart des cas, un appelant qui alloue une structure NET_BUFFER_LIST alloue et met en file d’attente au moins une structure NET_BUFFER sur cette structure NET_BUFFER_LIST. Il est plus efficace de préallouer NET_BUFFER structures lorsque vous allouez un pool de structures NET_BUFFER_LIST que d’allouer des structures NET_BUFFER_LIST et des structures NET_BUFFER séparément.

Vous pouvez appeler la fonction NdisAllocateNetBufferListPool avec la valeur fAllocateNetBuffer définie sur TRUE lors de la création d’un pool de structures NET_BUFFER_LIST. Dans ce cas, une structure NET_BUFFER est préallouée avec chaque structure NET_BUFFER_LIST que l’appelant alloue à partir du pool. Vous pouvez appeler le Fonction NdisAllocateNetBufferAndNetBufferList ou Fonction NdisAllocateNetBufferList pour allouer NET_BUFFER_LIST structures à partir d’un tel pool. Appelez NdisAllocateNetBufferAndNetBufferList uniquement si fAllocateNetBuffer a la valeur TRUE et DataSize est égal à zéro.

Vous pouvez également appeler NdisAllocateNetBufferListPool et définir le membre DataSize sur une valeur différente de zéro lors de la création d’un pool de structures NET_BUFFER_LIST. Dans ce cas, une structure NET_BUFFER, une MDL et des données sont préallouées avec chaque structure NET_BUFFER_LIST que l’appelant alloue à partir du pool.

NET_BUFFER des structures, des DLL et des mémoires tampons de données qui sont allouées avec NdisAllocateNetBufferAndNetBufferList ou NdisAllocateNetBufferList ne doit pas être libéré séparément de la structure NET_BUFFER_LIST. Ces structures sont libérées avec la structure NET_BUFFER_LIST lorsque vous appelez la fonction NdisFreeNetBufferList .

Appelez le Fonction NdisFreeNetBufferListPool pour libérer un pool de structures NET_BUFFER_LIST.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.0 et versions ultérieures.
Plateforme cible Universal
En-tête ndis/nblapi.h (include ndis.h)
Bibliothèque Ndis.lib
DLL Ndis.sys
IRQL <= DISPATCH_LEVEL
Règles de conformité DDI Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferListPool(ndis), NdisAllocateNetBufferListPool_InitFail(ndis)

Voir aussi

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferAndNetBufferList

NdisAllocateNetBufferList

NdisFreeNetBufferList

NdisFreeNetBufferListPool