The Windows Sockets specification does not mandate that a Windows Sockets service provider support raw sockets, that is, sockets of type SOCK_RAW. However, service providers are encouraged to supply raw socket support. A Windows Sockets-compliant application that wishes to use raw sockets should attempt to open the socket with the socket call, and if it fails either attempt to use another socket type or indicate the failure to the user.