I am implementing a network driver and have used the "snull" example from the O'riley book as a starting point. I can ping between devices using my driver as well as send and receive data through a UDP socket without problem. However, TCP sockets are not working. I have found that when opening a TCP socket the IOCTL function in my driver is being called. However, currently it does nothing but return 0.

Exactly what needs to be done in my IOCTL routine to make TCP sockets happy?