On windows 7 (.Net 4.6.1) I am getting exception with this code:
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.IOControl(-1744830448, new byte[4] { 1, 0, 0, 0 }, null);
The attempted operation is not supported for the type of object referenced at System.Net.Sockets.Socket.IOControl(Int32 ioControlCode, Byte[] optionInValue, Byte[] optionOutValue)
This works fine with Windows 8 on my VM.