A raw socket is a type of socket that allows access to the underlying transport provider. The use of raw sockets when porting applications to Winsock is not recommended for several reasons.
The Windows Sockets specification does not mandate that a Winsock 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.
On Windows 7, Windows Server 2008 R2, Windows Vista, and Windows XP with Service Pack 2 (SP2), the ability to send traffic over raw sockets has been restricted in several ways. For more information, see TCP/IP Raw Sockets.