2012-02-02 75 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()
一個優化的東西。