I have a customer running my drivers under Windows 2003 and they have encountered a situation where the network appears to freeze for a short time (seconds to a minute).
After a bit of to and fro and adding some debugging to the driver, I can see that during these times of freezing, I am indicating packets to Windows but Windows is not returning them for a long time. They are always returned eventually though.
I have encountered this before with small packets, and I resolved it by always indicating such packets with STATUS_RESOURCES, but am reluctant to do this with all packets unless that is the only option to fix this. That reluctance isn't based on any actual performance testing though, which I'm yet to do.
What could cause this? The packets are all TCP (and I think all SMB/CIFS), and all have only a single buffer attached to them. The problem happens rarely , maybe a few times a day. I have not been able to reproduce this problem in my testing environment.
One thing I am not doing is falling back to STATUS_RESOURCES when my supply of packets getting low. Perhaps this is all I need to do. I've never encountered a situation where Windows didn't quickly return packets before though.