2012-02-02 128 views
1

我遍历NET_BUFFER的MDL链来获取关联的数据。 这两个宏用于指示使用的数据空间开始的位置(NET_BUFFER_DATA_OFFSET() & NET_BUFFER_CURRENT_MDL_OFFSET())让我有点困惑,因为我一直都在观察它们返回相同的值,并且两者似乎同样可用。Windows过滤平台:访问数据包的有效负载

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

回答

1

好吧,明白了。
显然,如果当前MDL不指向第一个MDL,然后NET_BUFFER_DATA_OFFSET()将显示所有MDL公司的大小,直到目前的一个,加上当前的自身的失调,而NET_BUFFER_CURRENT_MDL_OFFSET()将仅指示当前MDL内的偏移量是你真正需要的,如果你使用宏观的NET_BUFFER_CURRENT_MDL()
一个优化的东西。