NdisAllocateNetBufferListPool, fonction (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 de retour
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 requis dans les appels suivants aux fonctions NDIS qui allouent et libèrent des structures de NET_BUFFER_LIST à partir de ce pool.
Remarques
Dans la plupart des cas, un appelant qui alloue une structure de 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élocalisé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 des structures NET_BUFFER_LIST à partir d’un tel pool. Appelez NdisAllocateNetBufferAndNetBufferList uniquement si fAllocateNetBuffer est 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, MDL et des données sont préallouées avec chaque structure NET_BUFFER_LIST que l’appelant alloue à partir du pool.
NET_BUFFER structures, MDL et mémoires tampons de données allouées avec NdisAllocateNetBufferAndNetBufferList ou NdisAllocateNetBufferList ne doit pas être libéré de la structure NET_BUFFER_LIST. Ces structures sont libérées avec la structure NET_BUFFER_LIST lorsque vous appelez la fonction NdisFreeNetBufferList.
Appeler le fonction NdisFreeNetBufferListPool pour libérer un pool de structures NET_BUFFER_LIST.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Prise en charge dans NDIS 6.0 et versions ultérieures. |
plateforme cible | Universel |
d’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