Partager via


NdisRetreatNetBufferListDataStart, fonction (ndis/nblapi.h)

Appelez la fonction NdisRetreatNetBufferListDataStart pour augmenter l’espace de données utilisé dans toutes les structures NET_BUFFER dans 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é supplémentaire d’espace de données utilisé dans chaque structure de NET_BUFFER. S’il n’y a pas suffisamment de espace de données inutilisé pour satisfaire 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 une 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 une mémoire.

Valeur de retour

NdisRetreatNetBufferListDataStart retourne l’une des valeurs suivantes :

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

Remarques

Appeler NdisRetreatNetBufferListDataStart équivaut à appeler le fonction NdisRetreatNetBufferDataStart pour chaque structure de NET_BUFFER sur la structure NET_BUFFER_LIST. NdisRetreatNetBufferListDataStart tente de satisfaire la requête en réduisant la valeur du membre DataOffset dans chaque structure NET_BUFFER. S’il n’y a pas suffisamment espace de données inutilisé disponible, 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.

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

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

NET_BUFFER_LIST

NdisAdvanceNetBufferDataStart NdisAdvanceNetBufferListDataStart NdisRetreatNetBufferDataStart

netAllocateMdl

NetFreeMdl