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 |
---|---|
|
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. |
|
NdisRetreatNetBufferDataStart a échoué en raison de ressources insuffisantes. |
|
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) |