Retraite et opérations avancées
NDIS fournit des fonctions de retrait et d’avance pour manipuler NET_BUFFER structures. Les opérations de retrait rendent plus d’espace de données utilisé disponible pour le pilote actuel. Les opérations avancées libèrent l’espace de données utilisé.
Les opérations de retrait sont requises pendant les opérations d’envoi ou lorsqu’un pilote retourne les données reçues à un pilote sous-jacent. Par exemple, lors d’une opération d’envoi, un pilote peut appeler la fonction NdisRetreatNetBufferDataStart pour faire de la place pour les données d’en-tête.
Les opérations préalables sont requises lorsqu’une opération d’envoi est terminée ou lorsqu’un pilote reçoit des données d’un pilote sous-jacent. Par exemple, lors d’une opération de réception, un pilote peut appeler la fonction NdisAdvanceNetBufferDataStart pour ignorer les données d’en-tête utilisées par un pilote de niveau inférieur. Dans ce cas, les données d’en-tête restent dans la mémoire tampon dans l’espace de données inutilisé.
La figure suivante montre la relation entre les données réseau et ces opérations.
Les rubriques suivantes fournissent plus d’informations sur les opérations d’avance et de retrait :