we implemented a simple Passthru purely intercepting & forwarding all packets to/ from MSTCP, seems to work well on Ethernet LAN PCs.
however, invariably after some random periods, the LAN connectivity suddenly stops. Pinging to other PCs no longer functions. However in Networks => Properties => ( now all protocol entries shows up ) unchecking then checking Virtual Packet Driver ( NDIS3PKT ), & restarting our Passthru software now worksagain until next connectivity loss…
Has this happened before ? Is there any likely reasons ? eg there could already be Open Handle not closed ?
we implemented the NDIS intercept/ forwarding calls using ‘shim’ independent API module in C++, which we were told C++ is very good at obfusciating flows thus could cause all kinds of problems such as improperly handle left open/ earlier rec( ) thread could be left hanging around now woken up attempting to move intercepted packet to buffer now no longer in existence….etc
the NDIS shim we used includes Winpkfilter & NDIS3PKT ( which allows only one handle to be open on an Adapter interface ).
It’s difficult to comment this since I don’t know what is NDIS3PKT you use. However, if checking unchecking it fixes the problem then it may appear to be the problems reason. It looks that WinpkFilter is stable, since you don’t need to reboot the system in order to restore the functionality. Of course problem can be in the application, if it will stop reading packets from WinpkFilter you will get the “frozen LAN” effect.