Windows can handle ICMP unreachable, I was just doing it wrong. Also use FormatMessage for the windows error to string code.