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
NdisAllocateNetBufferAndNetBufferListCommentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour