<?xml version="1.0" encoding="utf-8"?>
<Type Name="IOControlCode" FullName="System.Net.Sockets.IOControlCode">
  <TypeSignature Language="C#" Value="public enum IOControlCode" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed IOControlCode extends System.Enum" />
  <AssemblyInfo>
    <AssemblyName>System</AssemblyName>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.Enum</BaseTypeName>
  </Base>
  <Docs>
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>The <see cref="T:System.Net.Sockets.IOControlCode" /> enumeration provides named values for specifying socket operational modes. These values are the control codes passed to the Windows Sockets 2 (Winsock 2) <unmanagedCodeEntityReference>WSAIoctl</unmanagedCodeEntityReference> function.</para>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Specifies the IO control codes supported by the <see cref="M:System.Net.Sockets.Socket.IOControl(System.Int32,System.Byte[],System.Byte[])" /> method.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName="AbsorbRouterAlert">
      <MemberSignature Language="C#" Value="AbsorbRouterAlert" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode AbsorbRouterAlert = int64(2550136837)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This value is equal to the Winsock 2 SIO_ABSORB_RTRALERT constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="AddMulticastGroupOnInterface">
      <MemberSignature Language="C#" Value="AddMulticastGroupOnInterface" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode AddMulticastGroupOnInterface = int64(2550136842)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Join a multicast group using an interface identified by its index. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_INDEX_ADD_MCAST constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="AddressListChange">
      <MemberSignature Language="C#" Value="AddressListChange" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode AddressListChange = int64(671088663)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Enable receiving notification when the list of local interfaces for the socket's protocol family changes. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_ADDRESS_LIST_CHANGE constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="AddressListQuery">
      <MemberSignature Language="C#" Value="AddressListQuery" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode AddressListQuery = int64(1207959574)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Return the list of local interfaces that the socket can bind to. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_ADDRESS_LIST_QUERY constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="AddressListSort">
      <MemberSignature Language="C#" Value="AddressListSort" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode AddressListSort = int64(3355443225)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Sort the structure returned by the <see cref="F:System.Net.Sockets.IOControlCode.AddressListQuery" /> field and add scope ID information for IPv6 addresses. This control code is supported on Windows XP and later operating systems. This value is equal to the Winsock 2 SIO_ADDRESS_LIST_SORT constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="AssociateHandle">
      <MemberSignature Language="C#" Value="AssociateHandle" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode AssociateHandle = int64(2281701377)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Associate this socket with the specified handle of a companion interface. Refer to the appropriate  protocol-specific annex in the Winsock 2 reference or documentation for the particular companion interface for additional details. It is recommended that the Component Object Model (COM) be used instead of this IOCTL to discover and track other interfaces that might be supported by a socket. This control code is present for backward compatibility with systems where COM is not available or cannot be used for some other reason. This value is equal to the Winsock 2 SIO_ASSOCIATE_HANDLE constant. </para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="AsyncIO">
      <MemberSignature Language="C#" Value="AsyncIO" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode AsyncIO = int64(2147772029)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Enable notification for when data is waiting to be received. This value is equal to the Winsock 2 FIOASYNC constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="BindToInterface">
      <MemberSignature Language="C#" Value="BindToInterface" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode BindToInterface = int64(2550136840)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Bind the socket to a specified interface index. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_INDEX_BIND constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="DataToRead">
      <MemberSignature Language="C#" Value="DataToRead" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode DataToRead = int64(1074030207)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Return the number of bytes available for reading. This value is equal to the Winsock 2 FIONREAD constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="DeleteMulticastGroupFromInterface">
      <MemberSignature Language="C#" Value="DeleteMulticastGroupFromInterface" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode DeleteMulticastGroupFromInterface = int64(2550136843)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Remove the socket from a multicast group. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_INDEX_ADD_MCAST constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="EnableCircularQueuing">
      <MemberSignature Language="C#" Value="EnableCircularQueuing" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode EnableCircularQueuing = int64(671088642)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Replace the oldest queued datagram with an incoming datagram when the incoming message queues are full. This value is equal to the Winsock 2 SIO_ENABLE_CIRCULAR_QUEUEING constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="Flush">
      <MemberSignature Language="C#" Value="Flush" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode Flush = int64(671088644)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Discard the contents of the sending queue. This value is equal to the Winsock 2 SIO_FLUSH constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="GetBroadcastAddress">
      <MemberSignature Language="C#" Value="GetBroadcastAddress" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode GetBroadcastAddress = int64(1207959557)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Return a SOCKADDR structure that contains the broadcast address for the address family of the current socket. The returned address can be used with the <see cref="Overload:System.Net.Sockets.Socket.SendTo" /> method. This value is equal to the Winsock 2 SIO_GET_BROADCAST_ADDRESS constant. This value can be used on User Datagram Protocol (UDP) sockets only.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="GetExtensionFunctionPointer">
      <MemberSignature Language="C#" Value="GetExtensionFunctionPointer" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode GetExtensionFunctionPointer = int64(3355443206)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Obtain provider-specific functions that are not part of the Winsock specification. Functions are specified using their provider-assigned GUID. This value is equal to the Winsock 2 SIO_GET_EXTENSION_FUNCTION_POINTER constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="GetGroupQos">
      <MemberSignature Language="C#" Value="GetGroupQos" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode GetGroupQos = int64(3355443208)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Return the Quality of Service (QOS) attributes for the socket group. This value is reserved for future use, and is equal to the Winsock 2 SIO_GET_GROUP_QOS constant. </para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="GetQos">
      <MemberSignature Language="C#" Value="GetQos" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode GetQos = int64(3355443207)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Retrieve the QOS structure associated with the socket. This control is only supported on platforms that provide a QOS capable transport (Windows Me, Windows 2000, and later.) This value is equal to the Winsock 2 SIO_GET_QOS constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="KeepAliveValues">
      <MemberSignature Language="C#" Value="KeepAliveValues" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode KeepAliveValues = int64(2550136836)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Control sending TCP keep-alive packets and the interval at which they are sent. This control code is supported on Windows 2000 and later operating systems. For additional information, see RFC 1122 section 4.2.3.6. This value is equal to the Winsock 2 SIO_KEEPALIVE_VALS constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="LimitBroadcasts">
      <MemberSignature Language="C#" Value="LimitBroadcasts" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode LimitBroadcasts = int64(2550136839)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This value is equal to the Winsock 2 SIO_LIMIT_BROADCASTS constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="MulticastInterface">
      <MemberSignature Language="C#" Value="MulticastInterface" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode MulticastInterface = int64(2550136841)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Set the interface used for outgoing multicast packets. The interface is identified by its index. This control code is supported on Windows 2000 and later operating systems.  This value is equal to the Winsock 2 SIO_INDEX_MCASTIF constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="MulticastScope">
      <MemberSignature Language="C#" Value="MulticastScope" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode MulticastScope = int64(2281701386)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Control the number of times a multicast packet can be forwarded by a router, also known as the Time to Live (TTL), or hop count. This value is equal to the Winsock 2 SIO_MULTICAST_SCOPE constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="MultipointLoopback">
      <MemberSignature Language="C#" Value="MultipointLoopback" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode MultipointLoopback = int64(2281701385)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Control whether multicast data sent by the socket appears as incoming data in the sockets receive queue. This value is equal to the Winsock 2 SIO_MULTIPOINT_LOOPBACK constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="NamespaceChange">
      <MemberSignature Language="C#" Value="NamespaceChange" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode NamespaceChange = int64(2281701401)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Control whether the socket receives notification when a namespace query becomes invalid. This control code is supported on Windows XP and later operating systems. This value is equal to the Winsock 2 SIO_NSP_NOTIFY_CHANGE constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="NonBlockingIO">
      <MemberSignature Language="C#" Value="NonBlockingIO" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode NonBlockingIO = int64(2147772030)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Control the blocking behavior of the socket. If the argument specified with this control code is zero, the socket is placed in blocking mode. If the argument is nonzero, the socket is placed in nonblocking mode. This value is equal to the Winsock 2 FIONBIO constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="OobDataRead">
      <MemberSignature Language="C#" Value="OobDataRead" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode OobDataRead = int64(1074033415)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Return information about out-of-band data waiting to be received. When using this control code on stream sockets, the return value indicates the number of bytes available.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="QueryTargetPnpHandle">
      <MemberSignature Language="C#" Value="QueryTargetPnpHandle" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode QueryTargetPnpHandle = int64(1207959576)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Retrieve the underlying provider's SOCKET handle. This handle can be used to receive plug-and-play event notification. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_QUERY_TARGET_PNP_HANDLE constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="ReceiveAll">
      <MemberSignature Language="C#" Value="ReceiveAll" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode ReceiveAll = int64(2550136833)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Enable receiving all IPv4 packets on the network. The socket must have address family <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" />, the socket type must be <see cref="F:System.Net.Sockets.SocketType.Raw" />, and the protocol type must be <see cref="F:System.Net.Sockets.ProtocolType.IP" />. The current user must belong to the Administrators group on the local computer, and the socket must be bound to a specific port. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_RCVALL constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="ReceiveAllIgmpMulticast">
      <MemberSignature Language="C#" Value="ReceiveAllIgmpMulticast" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode ReceiveAllIgmpMulticast = int64(2550136835)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Enable receiving all Internet Group Management Protocol (IGMP) packets on the network. The socket must have address family <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" />, the socket type must be <see cref="F:System.Net.Sockets.SocketType.Raw" />, and the protocol type must be <see cref="F:System.Net.Sockets.ProtocolType.Igmp" />. The current user must belong to the Administrators group on the local computer, and the socket must be bound to a specific port. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_RCVALL_IGMPMCAST constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="ReceiveAllMulticast">
      <MemberSignature Language="C#" Value="ReceiveAllMulticast" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode ReceiveAllMulticast = int64(2550136834)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Enable receiving all multicast IPv4 packets on the network. These are packets with destination addresses in the range 224.0.0.0 through 239.255.255.255. The socket must have address family <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" />, the socket type must be <see cref="F:System.Net.Sockets.SocketType.Raw" />, and the protocol type must be <see cref="F:System.Net.Sockets.ProtocolType.Udp" />. The current user must belong to the Administrators group on the local computer, and the socket must be bound to a specific port. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_RCVALL_MCAST constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="RoutingInterfaceChange">
      <MemberSignature Language="C#" Value="RoutingInterfaceChange" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode RoutingInterfaceChange = int64(2281701397)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Enable receiving notification when the local interface used to access a remote endpoint changes. This value is equal to the Winsock 2 SIO_ROUTING_INTERFACE_CHANGE constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="RoutingInterfaceQuery">
      <MemberSignature Language="C#" Value="RoutingInterfaceQuery" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode RoutingInterfaceQuery = int64(3355443220)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Return the interface addresses that can be used to connect to the specified remote address. This value is equal to the Winsock 2 SIO_ROUTING_INTERFACE_QUERY constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="SetGroupQos">
      <MemberSignature Language="C#" Value="SetGroupQos" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode SetGroupQos = int64(2281701388)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Set the Quality of Service (QOS) attributes for the socket group. This value is reserved for future use and is equal to the Winsock 2 SIO_SET_GROUP_QOS constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="SetQos">
      <MemberSignature Language="C#" Value="SetQos" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode SetQos = int64(2281701387)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Set the Quality of Service (QOS) attributes for the socket. QOS defines the bandwidth requirements for the socket. This control code is supported on Windows Me, Windows 2000, and later operating systems. This value is equal to the Winsock 2 SIO_SET_QOS constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="TranslateHandle">
      <MemberSignature Language="C#" Value="TranslateHandle" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode TranslateHandle = int64(3355443213)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Return a handle for the socket that is valid in the context of a companion interface. This value is equal to the Winsock 2 SIO_TRANSLATE_HANDLE constant.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="UnicastInterface">
      <MemberSignature Language="C#" Value="UnicastInterface" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.IOControlCode UnicastInterface = int64(2550136838)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.IOControlCode</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Set the interface used for outgoing unicast packets. This value is equal to the Winsock 2 SIO_UCAST_IF constant.</para>
        </summary>
      </Docs>
    </Member>
  </Members>
</Type>