WFP callout driver packet order and thread safety

Hello,

I am writing a WFP callout driver.

I am have registered the callout at the FWPM_LAYER_STREAM_V4 and I have 2 questions:

  1. Are the packets that callout receives have been reordered (at the TCP level) ?

What I want to make sure is that the filter is after the TCP reassembly layer in the incoming end and before the re-transmission layer in the outgoing end.

  1. Is the callout function blocking at the stream level?

During the callout (the classifyFn function) execution, is it possible that the callout will be called again with the same FlowContext by the OS to handle a new data that arrives on the same TCP stream?

Thanks,

Yoni