Partager via


NdisAllocateNetBufferListContext, fonction (ndis/nblapi.h)

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

structure NET_BUFFER_LIST.

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 de NET_BUFFER_LIST précédemment allouée.

[in] ContextSize

Quantité d’espace de contexte à allouer dans la structure NET_BUFFER_LIST_CONTEXT. Cette quantité 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, pour allouer si NDIS doit allouer de la mémoire pour répondre à la demande. Cette quantité doit être un multiple de la valeur définie par sizeof(void*).

[in] PoolTag

Balise de pool de noyau utilisée par NDIS pour allouer la mémoire pour 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 de retour

NdisAllocateNetBufferListContext retourne l’une des valeurs suivantes :

Retourner le code Description
NDIS_STATUS_SUCCESS
NdisAllocateNetBufferListContext espace de contexte alloué avec succès en réduisant la valeur du membre 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
NdisAllocateNetBufferListContext a échoué pour des raisons autres que des ressources insuffisantes.

Remarques

S’il existe suffisamment d’espace de contexte inutilisé disponible dans la structure NET_BUFFER_LIST_CONTEXT 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 de contexte. Vous pouvez spécifier ContextBackFill pour allouer de la mémoire supplémentaire afin que l’appel suivant à NdisAllocateNetBufferListContext n’ait pas besoin d’allouer de mémoire.

Remarque 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 n’est pas adéquat pour les types de données avec des exigences d’alignement inhabituelles, comme SLIST_ENTRY.

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

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)

Voir aussi

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NdisFreeNetBufferListContext