Partager via


NdisAllocateNetBufferListContext, fonction (ndis/nblapi.h)

Appelez la fonction NdisAllocateNetBufferListContext pour allouer plus d’espace de contexte dans la structure NET_BUFFER_LIST_CONTEXT d’un

NET_BUFFER_LIST structure.

Syntaxe

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisAllocateNetBufferListContext(
  [in] NET_BUFFER_LIST *NetBufferList,
  [in] USHORT          ContextSize,
  [in] USHORT          ContextBackFill,
  [in] ULONG           PoolTag
);

Paramètres

[in] NetBufferList

Pointeur vers une structure NET_BUFFER_LIST précédemment allouée.

[in] ContextSize

Quantité d’espace de contexte à allouer dans la structure NET_BUFFER_LIST_CONTEXT. Ce montant doit être un multiple de la valeur définie par sizeof(void*).

[in] ContextBackFill

Quantité de mémoire, en plus de la valeur de ContextSize, à allouer si NDIS doit allouer de la mémoire pour répondre à la demande. Ce montant doit être un multiple de la valeur définie par sizeof(void*).

[in] PoolTag

Balise de pool de noyau que NDIS utilise pour allouer la mémoire à la structure NET_BUFFER_LIST_CONTEXT, si l’allocation est nécessaire. 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 de la mémoire.

Valeur retournée

NdisAllocateNetBufferListContext retourne l’un des éléments suivants :

Code de retour Description
NDIS_STATUS_SUCCESS
NdisAllocateNetBufferListContext a correctement alloué l’espace de contexte en réduisant la valeur du membre Offset de la structure NET_BUFFER_LIST_CONTEXT ou en allouant une nouvelle mémoire.
NDIS_STATUS_RESOURCES
NdisAllocateNetBufferListContext a échoué en raison de ressources insuffisantes.
NDIS_STATUS_FAILURE
Échec de NdisAllocateNetBufferListContext pour des raisons autres que des ressources insuffisantes.

Remarques

Si l’espace de contexte inutilisé disponible dans la structure NET_BUFFER_LIST_CONTEXT est suffisant pour satisfaire la demande, NdisAllocateNetBufferListContext réduit simplement la valeur du membre Offset dans la structure NET_BUFFER_LIST_CONTEXT. Sinon, NDIS alloue une nouvelle mémoire pour l’espace contextuel. Vous pouvez spécifier ContextBackFill pour allouer de la mémoire supplémentaire afin que l’appel suivant à NdisAllocateNetBufferListContext n’ait pas à allouer de mémoire.

Note L’espace de contexte est toujours aligné sur 'sizeof(void*)'. Il s’agit d’un alignement adéquat pour tous les types naturels, mais il ne l’est pas pour les types de données avec des exigences d’alignement inhabituelles, comme SLIST_ENTRY.

Appelez le Fonction NdisFreeNetBufferListContext pour libérer l’espace de contexte dans la structure NET_BUFFER_LIST_CONTEXT qui a été allouée avec NdisAllocateNetBufferListContext.

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)

Voir aussi

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NdisFreeNetBufferListContext