2012-02-02 1 views
1

Je traverse la chaîne MDL d'un NET_BUFFER pour obtenir les données associées. Les deux macros utilisées pour indiquer où commence l'espace de données utilisé (NET_BUFFER_DATA_OFFSET() & NET_BUFFER_CURRENT_MDL_OFFSET()) m'ont un peu dérouté, car je les ai toujours observées en retournant la même valeur, et les deux semblent également utilisables.Plate-forme de filtrage Windows: accès à la charge utile du paquet

Lequel devrait être utilisé? Quelle est la différence entre eux?

Répondre

1

Ok, j'ai compris.
De toute évidence, si mdl ne pointe pas vers le premier mdl, alors NET_BUFFER_DATA_OFFSET() indiquera la taille de tous les mdl jusqu'à la valeur actuelle, plus le décalage actuel, tandis que NET_BUFFER_CURRENT_MDL_OFFSET() indiquera uniquement le décalage dans le mdl actuel, qui est tout ce dont vous avez vraiment besoin si vous utilisez la macro NET_BUFFER_CURRENT_MDL().
Un truc d'optimisation.

Questions connexes