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 pour la structure NET_BUFFER_POOL_PARAMETERS. Définissez le membre type de la structure spécifiée par -en-tête sur NDIS_OBJECT_TYPE_DEFAULT, le membre Révision sur NET_BUFFER_POOL_PARAMETERS_REVISION_1 et le membre taille sur NDIS_SIZEOF_NET_BUFFER_POOL_PARAMETERS_REVISION_1.
PoolTag
Balise de pool de noyau utilisée par l’appelant lorsqu’il alloue des structures NET_BUFFER à 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 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’elle alloue pour la structure NET_BUFFER. Si l’appelant n’utilise pas cette fonctionnalité, cette valeur doit être définie sur zéro.
Valeur de retour
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 requis dans les appels suivants aux fonctions NDIS qui allouent et libèrent des structures de NET_BUFFER à partir de ce pool.
Remarques
Appelez les fonctions suivantes pour allouer des structures NET_BUFFER à partir du pool de structures NET_BUFFER.
NdisAllocateNetBufferMdlAndDataMdL et mémoires tampons de données allouées avec NdisAllocateNetBufferMdlAndData ne doivent pas être libérées 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 des pools de structure NET_BUFFER créés avec NdisAllocateNetBufferPool.
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 |
IRQL | <= DISPATCH_LEVEL |
règles de conformité DDI | Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferPool(ndis), NdisAllocateNetBufferPool_InitFail(ndis) |