我正在遍历NET_BUFFER的MDL链以获取关联的数据。
用来指示所用数据空间从何处开始的两个宏(NET_BUFFER_DATA_OFFSET()
和NET_BUFFER_CURRENT_MDL_OFFSET()
)使我有些困惑,因为我一直观察到它们返回相同的值,并且两者看起来同样有用。
应该使用哪一个?它们之间有什么区别?
最佳答案
好的,我知道了。
显然,如果当前的mdl没有指向第一个mdl,那么NET_BUFFER_DATA_OFFSET()
将指示所有mdl的大小,直到当前的mdl,再加上当前的自身偏移量,而NET_BUFFER_CURRENT_MDL_OFFSET()
将仅指示当前mdl内的偏移量,如果使用NET_BUFFER_CURRENT_MDL()
宏则需要。
优化的事情。
关于windows - Windows筛选平台: Access to the the packet's payload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9110085/