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_LIST_POOL_PARAMETERS
NdisAllocateNetBufferAndNetBufferList