If you are using a Linux firewall there are several options for SYN DoS/DDoS protection there, before getting to the Windows server.
First, you can set up a quick reply rule to all unimportant SYN packets, making the firewall reply on the Windows server's behalf. (Non-established connections, you should install over-aggressive keepalive for valid packets. Pretty much all Syn Floods will fall into one of these categories.) You can then set the Syn Cookie threshold on these types of packets.
For standard frequency Keep-alive packets, they too should be quick-replied, but they should also be forwarded, and the server's reply should be caught.
This will essentially use the Linux firewall for your SYN cookie protection (and honestly, the Linux Syn cookie protocol is much better. The Syn cookie protocol on Windows is crap, which is why it's off by default in favor of just dropping packets.)