WinAPI Без прав администратора не создаётся сокет

#include <iostream>
#include <winsock2.h>

#pragma comment(lib,"ws2_32.lib")

int main()
{
	WSADATA wsa;
	if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
	{
		std::cout << "WSAStartup() failed." << std::endl;
		return 1;
	}

	SOCKET sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
	if (sock == INVALID_SOCKET)
	{
		std::cout << "Failed to create raw socket." << std::endl;
		int e = WSAGetLastError();
		std::cout << "Error code: " << e << std::endl;
		WSACleanup();
		
		return 1;
	}

	closesocket(sock);
	WSACleanup();	

	return 0;
}

Очень странная хрень. Если запускать без администратора, то функция socket(...) не срабатывает и WSAGetLastError выдаёт 10013. Это значит WSAEACCESS. А с администратором работает.
Почему?

А, кажется дошло :thinking:
Вторым параметром передаётся SOCK_RAW. Видимо, так делать может только администратор :man_shrugging: