Fonction NdisRetreatNetBufferListDataStart (ndis/nblapi.h)

Appelez la fonction NdisRetreatNetBufferListDataStart pour augmenter l’espace de données utilisé dans toutes les structures NET_BUFFER d’une structure NET_BUFFER_LIST .

Syntaxe

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferListDataStart(
  [in]           NET_BUFFER_LIST         *NetBufferList,
  [in]           ULONG                   DataOffsetDelta,
  [in]           ULONG                   DataBackFill,
  [in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler,
  [in, optional] NET_BUFFER_FREE_MDL     *FreeMdlHandler
);

Paramètres

[in] NetBufferList

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

[in] DataOffsetDelta

Quantité d’espace de données supplémentaire utilisé dans chaque structure NET_BUFFER. S’il n’y a pas assez d’espace de données inutilisé pour répondre à la demande, NDIS alloue plus de mémoire.

[in] DataBackFill

Si NDIS doit allouer de la mémoire, ce paramètre spécifie la quantité d’espace de données en plus de la valeur du paramètre DataOffsetDelta à allouer.

[in, optional] AllocateMdlHandler

Point d’entrée facultatif pour une fonction NetAllocateMdl . Si l’appelant spécifie un point d’entrée pour la fonction NetAllocateMdl , NDIS appelle NetAllocateMdl pour allouer un MDL et de la mémoire.

[in, optional] FreeMdlHandler

Point d’entrée facultatif pour une fonction NetFreeMdl . Si l’appelant spécifie un point d’entrée pour la fonction NetFreeMdl , NDIS appelle NetFreeMdl pour libérer un MDL et de la mémoire.

Valeur retournée

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

Code de retour Description
NDIS_STATUS_SUCCESS
NdisRetreatNetBufferListDataStart a correctement alloué l’espace de données sur toutes les structures NET_BUFFER, soit en réduisant la valeur du membre DataOffset , soit en allouant un nouveau stockage.
NDIS_STATUS_RESOURCES
NdisRetreatNetBufferListDataStart a échoué en raison de ressources insuffisantes.
NDIS_STATUS_FAILURE
NdisRetreatNetBufferListDataStart a échoué pour des raisons autres que des ressources insuffisantes.

Remarques

Appeler NdisRetreatNetBufferListDataStart équivaut à appeler le Fonction NdisRetreatNetBufferDataStart pour chaque structure NET_BUFFER sur la structure NET_BUFFER_LIST . NdisRetreatNetBufferListDataStart tente de satisfaire la demande en réduisant la valeur du membre DataOffset dans chaque structure NET_BUFFER. Si l’espace de données inutilisé n’est pas suffisant, cette fonction alloue une nouvelle mémoire tampon et MDL, puis chaîne le nouveau MDL au début de la chaîne MDL sur la structure NET_BUFFER.

Appelez le Fonction NdisAdvanceNetBufferListDataStart pour libérer l’espace de données qui a été revendiqué dans un appel NdisRetreatNetBufferListDataStart précédent. Le pilote peut également appeler le Fonction NdisAdvanceNetBufferDataStart pour chaque structure NET_BUFFER sur la structure NET_BUFFER_LIST. L’appel de NdisAdvanceNetBufferListDataStart est plus efficace.

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

NET_BUFFER_LIST

NdisAdvanceNetBufferDataStart NdisAdvanceNetBufferListDataStart NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl