Hi, I wanted to understand what is the best way to optimize performance on the receive path of an NDIS IM Mux driver.
The NDIS IM sits between the NIC's miniport driver and TCP/IP, and processes the packets. On the receive path, since it is possible to receive multiple NBLs, how should the ProtocolReceiveXXX() callback process the receive NBL chain asynchronously? The protocol edge needs to pass over the received packets to my packet processing logic before it indicates the frames to upper layers. However, since multiple NBLs can be present in the receive path and because each packet can be processed differently, how are these supposed to be handled for best performance? Should the packets be indicated individually after being individually processed, or should they be linked back and indicated in a list together? Moreover, how can this be made asynchronous from the ProtocolReceiveXXX() function?