NdisAdvanceNetBufferDataStart, fonction (ndis/nblapi.h)

Appelez la fonction NdisAdvanceNetBufferDataStart pour libérer l’espace de données utilisé qui a été ajouté avec le Fonction NdisRetreatNetBufferDataStart .

Syntaxe

NDIS_EXPORTED_ROUTINE VOID NdisAdvanceNetBufferDataStart(
  [in]           NET_BUFFER          *NetBuffer,
  [in]           ULONG               DataOffsetDelta,
  [in]           BOOLEAN             FreeMdl,
  [in, optional] NET_BUFFER_FREE_MDL *FreeMdlHandler
);

Paramètres

[in] NetBuffer

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

[in] DataOffsetDelta

Quantité d’espace de données utilisé à libérer. NDIS ajuste la valeur du membre DataOffset de la structure NET_BUFFER en conséquence.

[in] FreeMdl

Valeur BOOLEAN qui, si TRUE, demande À NDIS de libérer toutes les dll MDL inutilisées dans l’opération préalable. Si FreeMdl a la valeur FALSE, NDIS conserve les MDL inutilisées pour les utiliser dans les opérations de retrait suivantes.

[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 de retour

None

Remarques

Si NDIS a alloué de la mémoire pour satisfaire un appel correspondant au Fonction NdisRetreatNetBufferDataStart , puis NdisAdvanceNetBufferDataStart libère la mémoire allouée par NdisRetreatNetBufferDataStart . Sinon, la mémoire reste dans le MDL et seule la valeur du membre DataOffset de la structure NET_BUFFER est modifiée.

NDIS appelle la fonction NetFreeMdl spécifiée dans FreeMdl si NdisAdvanceNetBufferDataStart doit libérer de la mémoire. NDIS appelle NetFreeMdl uniquement pour libérer les dll mdl et la mémoire allouées par le pilote dans la fonction NetAllocateMdl .

Lorsque les pilotes de protocole appellent NdisAdvanceNetBufferDataStart sur le chemin de réception pour accéder aux différents en-têtes de transport, la chaîne MDL ne doit pas être modifiée et FreeMdl a la valeur FALSE.

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

NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl