NdisAllocateNetBufferPool, fonction (ndis/nblapi.h)
Appelez la fonction NdisAllocateNetBufferPool pour allouer un pool de structures NET_BUFFER .
Syntaxe
NDIS_EXPORTED_ROUTINE NDIS_HANDLE NdisAllocateNetBufferPool(
[in, optional] NDIS_HANDLE NdisHandle,
[in] NET_BUFFER_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_POOL_PARAMETERS qui définit les paramètres du pool. La structure est définie comme suit :
typedef struct _NET_BUFFER_POOL_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG PoolTag;
ULONG DataSize;
} NET_BUFFER_POOL_PARAMETERS, *PNET_BUFFER_POOL_PARAMETERS;
Cette structure comprend les membres suivants :
En-tête
Structure NDIS_OBJECT_HEADER de la structure NET_BUFFER_POOL_PARAMETERS. Définissez le membre Type de la structure spécifiée par Header sur NDIS_OBJECT_TYPE_DEFAULT, le membre Revision sur NET_BUFFER_POOL_PARAMETERS_REVISION_1 et le membre Size sur NDIS_SIZEOF_NET_BUFFER_POOL_PARAMETERS_REVISION_1.
PoolTag
Balise de pool de noyau que l’appelant utilise lorsqu’il alloue NET_BUFFER structures à partir de ce pool. La balise est une chaîne, délimitée par des guillemets simples, avec jusqu’à quatre caractères, généralement spécifiés dans l’ordre inverse. La balise de pool de noyau aide NDIS à identifier le propriétaire des structures NET_BUFFER qui sont allouées à partir de ce pool.
DataSize
Taille de données par défaut pour les mémoires tampons de données associées à ce pool. L’appelant doit définir cette valeur s’il appelle le Fonction NdisAllocateNetBufferMdlAndData . NDIS utilise cette valeur pour définir la taille de la mémoire tampon de données qu’il alloue pour la structure NET_BUFFER. Si l’appelant n’utilise pas cette fonctionnalité, cette valeur doit être définie sur zéro.
Valeur retournée
NdisAllocateNetBufferPool retourne un handle au pool de structures NET_BUFFER 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 de ce pool.
Remarques
Appelez les fonctions suivantes pour allouer NET_BUFFER structures à partir du pool de structures NET_BUFFER.
NdisAllocateNetBufferMdlAndDataLes mémoires tampons MDL et de données allouées avec NdisAllocateNetBufferMdlAndData ne doivent pas être libérées séparément de la structure NET_BUFFER. Ces structures sont libérées avec la structure NET_BUFFER lorsque vous appelez la fonction NdisFreeNetBuffer .
Appelez la fonction NdisFreeNetBufferPool pour libérer NET_BUFFER pools de structures créés avec NdisAllocateNetBufferPool.
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 |
IRQL | <= DISPATCH_LEVEL |
Règles de conformité DDI | Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferPool(ndis), NdisAllocateNetBufferPool_InitFail(ndis) |