Will multiple NBL be sent to classifyFn?

Callout function classifyFn will get a pointer to a NET_BUFFER_LIST (unless for stream layer). My question is: is it always a single NET_BUFFER_LIST structure, or is there any case it will be a list of NET_BUFFER_LIST structure?

[243 byte] By [MartinKin] at [2008-1-10]
# 1

WFP only indicates a single net buffer list to callouts (that is, netBufferList->Next == NULL), except for the following cases:

  • WFP can indicate net buffer list chains to callouts from the Stream layer.
  • WFP indicates net buffer list chains to callouts when it classifies IP packet fragment groups in the forward path to callouts. Each net buffer list inside the chain describes a single fragment.

Fragment grouping at FORWARD layer is currently disabled by default and can only be enabled via netsh command.

For completeness, for inbound packets you can safely assume there is only one (1) NET_BUFFER for each NET_BUFFER_LIST; however an NET_BUFFER_LIST can contain multiple NET_BUFFER structures for outbound packets (e.g. TCP segmentation will result in multiple NET_BUFFERs per send)

Hope this helps,

Biao.W.

BiaoWang[MSFT] at 2007-10-3 > top of Msdn Tech,Windows Networking Development,Windows Filtering Platform (WFP)...