Partager via


NdisRetreatNetBufferDataStart, fonction (ndis/nblapi.h)

Appelez la fonction NdisRetreatNetBufferDataStart pour accéder à un espace de données plus utilisé dans la chaîne MDL d’une structure de NET_BUFFER .

Syntaxe

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferDataStart(
  [in]           NET_BUFFER              *NetBuffer,
  [in]           ULONG                   DataOffsetDelta,
  [in]           ULONG                   DataBackFill,
  [in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler
);

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é à ajouter. NDIS ajuste le membre DataOffset de la structure NET_BUFFER en conséquence. S’il n’y a pas suffisamment d’espace de données inutilisé pour répondre à la demande, NDIS alloue de la mémoire supplémentaire.

[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 une MDL et de la mémoire.

Valeur retournée

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

Code de retour Description
NDIS_STATUS_SUCCESS
NdisRetreatNetBufferDataStart a correctement alloué l’espace de données utilisé à l’aide de l’espace de données inutilisé ou en allouant un nouveau stockage.
NDIS_STATUS_RESOURCES
NdisRetreatNetBufferDataStart a échoué en raison de ressources insuffisantes.
NDIS_STATUS_FAILURE
NdisRetreatNetBufferDataStart a échoué pour des raisons autres que des ressources insuffisantes.

Remarques

NdisRetreatNetBufferDataStart tente de satisfaire la demande en réduisant la valeur du membre DataOffset de la structure NET_BUFFER .

S’il n’y a pas assez d’espace de données inutilisé, cette fonction alloue une nouvelle mémoire tampon et une MDL pour décrire la nouvelle mémoire tampon et chaîne la nouvelle MDL au début de la chaîne MDL. NDIS appelle la fonction NetAllocateMdl spécifiée dans AllocateMdl pour allouer la MDL et la mémoire. La fonction NetAllocateMdl peut utiliser n’importe quelle méthode d’allocation qui répond aux exigences de conception du pilote.

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

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

NdisAdvanceNetBufferDataStart

NetAllocateMdl