Windows过滤平台:访问数据包的有效负载

时间:2012-02-02 09:44:00

标签: windows ndis wfp

我正在遍历NET_BUFFER的MDL链以获取相关数据。 用于指示使用的数据空间开始位置的两个宏(NET_BUFFER_DATA_OFFSET()& NET_BUFFER_CURRENT_MDL_OFFSET())让我有点困惑,因为我总是观察它们返回相同的价值,两者似乎同样可用。

应该使用哪一个?它们之间有什么区别?

1 个答案:

答案 0 :(得分:1)

好的,明白了 显然,如果当前mdl 没有指向第一个mdl,那么NET_BUFFER_DATA_OFFSET()将指示所有mdl的大小,直到当前的mdl加上当前自己的偏移,而NET_BUFFER_CURRENT_MDL_OFFSET()将仅指示当前mdl中的偏移量,如果您使用NET_BUFFER_CURRENT_MDL()宏,则这是您真正需要的 一个优化的东西。