Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在遍历 NET_BUFFER 的 MDL 链来获取相关数据。用于指示已用数据空间开始位置的两个宏 ( NET_BUFFER_DATA_OFFSET()&NET_BUFFER_CURRENT_MDL_OFFSET() ) 让我有些困惑,因为我一直观察到它们返回相同的值,而且看起来都同样可用。
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()宏。 一个优化的东西。
NET_BUFFER_CURRENT_MDL()