Compartir por


IOControlCode Enumeración

Definición

Especifica los códigos de control de E/S admitidos por el método IOControl(Int32, Byte[], Byte[]).

public enum class IOControlCode
public enum IOControlCode
type IOControlCode = 
Public Enum IOControlCode
Herencia
IOControlCode

Campos

Nombre Valor Description
EnableCircularQueuing 671088642

Reemplace el datagrama en cola más antiguo por un datagrama entrante cuando las colas de mensajes entrantes estén llenas. Este valor es igual a la constante winsock 2 SIO_ENABLE_CIRCULAR_QUEUEING.

Flush 671088644

Descarte el contenido de la cola de envío. Este valor es igual a la constante winsock 2 SIO_FLUSH.

AddressListChange 671088663

Habilite la recepción de notificaciones cuando cambie la lista de interfaces locales para la familia de protocolos del socket. Este valor es igual a la constante winsock 2 SIO_ADDRESS_LIST_CHANGE.

DataToRead 1074030207

Devuelve el número de bytes disponibles para la lectura. Este valor es igual a la constante FIONREAD de Winsock 2.

OobDataRead 1074033415

Devuelve información sobre los datos fuera de banda que esperan recibirse. Al usar este código de control en sockets de flujo, el valor devuelto indica el número de bytes disponibles.

GetBroadcastAddress 1207959557

Devuelve una estructura SOCKADDR que contiene la dirección de difusión de la familia de direcciones del socket actual. La dirección devuelta se puede usar con el SendTo método . Este valor es igual a la constante SIO_GET_BROADCAST_ADDRESS winsock 2. Este valor solo se puede usar en sockets del Protocolo de datagramas de usuario (UDP).

AddressListQuery 1207959574

Devuelve la lista de interfaces locales a las que el socket puede enlazar. Este valor es igual a la constante winsock 2 SIO_ADDRESS_LIST_QUERY.

QueryTargetPnpHandle 1207959576

Recupere el identificador SOCKET del proveedor subyacente. Este identificador se puede usar para recibir notificaciones de eventos plug-and-play. Este valor es igual a la constante winsock 2 SIO_QUERY_TARGET_PNP_HANDLE.

AsyncIO 2147772029

Habilite la notificación para cuando los datos estén esperando recibirse. Este valor es igual a la constante FIOASYNC de Winsock 2.

NonBlockingIO 2147772030

Controlar el comportamiento de bloqueo del socket. Si el argumento especificado con este código de control es cero, el socket se coloca en modo de bloqueo. Si el argumento es distinto de cero, el socket se coloca en modo sin bloqueo. Este valor es igual a la constante FIONBIO de Winsock 2.

AssociateHandle 2281701377

Asocie este socket con el identificador especificado de una interfaz complementaria. Consulte el anexo específico del protocolo adecuado en la referencia o documentación de Winsock 2 para obtener más información sobre la interfaz complementaria concreta. Se recomienda usar el modelo de objetos componentes (COM) en lugar de este IOCTL para detectar y realizar un seguimiento de otras interfaces compatibles con un socket. Este código de control está presente para la compatibilidad con versiones anteriores con sistemas en los que COM no está disponible o no se puede usar por algún otro motivo. Este valor es igual a la constante SIO_ASSOCIATE_HANDLE Winsock 2.

MultipointLoopback 2281701385

Controlar si los datos de multidifusión enviados por el socket aparecen como datos entrantes en la cola de recepción de sockets. Este valor es igual a la constante winsock 2 SIO_MULTIPOINT_LOOPBACK.

MulticastScope 2281701386

Controlar el número de veces que un enrutador puede reenviar un paquete de multidifusión, también conocido como período de vida (TTL) o recuento de saltos. Este valor es igual a la constante winsock 2 SIO_MULTICAST_SCOPE.

SetQos 2281701387

Establezca los atributos de calidad de servicio (QOS) para el socket. QOS define los requisitos de ancho de banda para el socket. Este valor es igual a la constante winsock 2 SIO_SET_QOS.

SetGroupQos 2281701388

Establezca los atributos de calidad de servicio (QOS) para el grupo de sockets. Este valor está reservado para uso futuro y es igual a la constante winsock 2 SIO_SET_GROUP_QOS.

RoutingInterfaceChange 2281701397

Habilite la recepción de notificaciones cuando cambie la interfaz local utilizada para acceder a un punto de conexión remoto. Este valor es igual a la constante winsock 2 SIO_ROUTING_INTERFACE_CHANGE.

NamespaceChange 2281701401

Controlar si el socket recibe una notificación cuando una consulta de espacio de nombres deja de ser válida. Este código de control es compatible con Windows XP y sistemas operativos posteriores. Este valor es igual a la constante winsock 2 SIO_NSP_NOTIFY_CHANGE.

ReceiveAll 2550136833

Habilite la recepción de todos los paquetes IPv4 en la red. El socket debe tener la familia InterNetworkde direcciones , el tipo de socket debe ser Rawy el tipo de protocolo debe ser IP. El usuario actual debe pertenecer al grupo Administradores del equipo local y el socket debe estar enlazado a un puerto específico. Este valor es igual a la constante winsock 2 SIO_RCVALL.

ReceiveAllMulticast 2550136834

Habilite la recepción de todos los paquetes IPv4 de multidifusión en la red. Estos son paquetes con direcciones de destino en el intervalo 224.0.0.0 a 239.255.255.255. El socket debe tener la familia InterNetworkde direcciones , el tipo de socket debe ser Rawy el tipo de protocolo debe ser Udp. El usuario actual debe pertenecer al grupo Administradores del equipo local y el socket debe estar enlazado a un puerto específico. Este valor es igual a la constante winsock 2 SIO_RCVALL_MCAST.

ReceiveAllIgmpMulticast 2550136835

Habilite la recepción de todos los paquetes del Protocolo de administración de grupos de Internet (IGMP) en la red. El socket debe tener la familia InterNetworkde direcciones , el tipo de socket debe ser Rawy el tipo de protocolo debe ser Igmp. El usuario actual debe pertenecer al grupo Administradores del equipo local y el socket debe estar enlazado a un puerto específico. Este valor es igual a la constante winsock 2 SIO_RCVALL_IGMPMCAST.

KeepAliveValues 2550136836

Controlar el envío de paquetes tcp keep-alive y el intervalo en el que se envían. Para obtener más información, consulte la sección 4.2.3.6 de RFC 1122. Este valor es igual a la constante winsock 2 SIO_KEEPALIVE_VALS.

AbsorbRouterAlert 2550136837

Este valor es igual a la constante SIO_ABSORB_RTRALERT winsock 2.

UnicastInterface 2550136838

Establezca la interfaz usada para los paquetes de unidifusión salientes. Este valor es igual a la constante winsock 2 SIO_UCAST_IF.

LimitBroadcasts 2550136839

Este valor es igual a la constante winsock 2 SIO_LIMIT_BROADCASTS.

BindToInterface 2550136840

Enlace el socket a un índice de interfaz especificado. Este valor es igual a la constante winsock 2 SIO_INDEX_BIND.

MulticastInterface 2550136841

Establezca la interfaz usada para los paquetes de multidifusión salientes. La interfaz se identifica mediante su índice. Este valor es igual a la constante winsock 2 SIO_INDEX_MCASTIF.

AddMulticastGroupOnInterface 2550136842

Una un grupo de multidifusión mediante una interfaz identificada por su índice. Este valor es igual a la constante SIO_INDEX_ADD_MCAST Winsock 2.

DeleteMulticastGroupFromInterface 2550136843

Quite el socket de un grupo de multidifusión. Este valor es igual a la constante SIO_INDEX_ADD_MCAST Winsock 2.

GetExtensionFunctionPointer 3355443206

Obtenga funciones específicas del proveedor que no formen parte de la especificación winsock. Las funciones se especifican mediante su GUID asignado por el proveedor. Este valor es igual a la constante winsock 2 SIO_GET_EXTENSION_FUNCTION_POINTER.

GetQos 3355443207

Recupere la estructura de QOS asociada al socket. Este valor es igual a la constante winsock 2 SIO_GET_QOS.

GetGroupQos 3355443208

Devuelve los atributos de calidad de servicio (QOS) para el grupo de sockets. Este valor está reservado para uso futuro y es igual a la constante Winsock 2 SIO_GET_GROUP_QOS.

TranslateHandle 3355443213

Devuelve un identificador para el socket que es válido en el contexto de una interfaz complementaria. Este valor es igual a la constante winsock 2 SIO_TRANSLATE_HANDLE.

RoutingInterfaceQuery 3355443220

Devuelve las direcciones de interfaz que se pueden usar para conectarse a la dirección remota especificada. Este valor es igual a la constante winsock 2 SIO_ROUTING_INTERFACE_QUERY.

AddressListSort 3355443225

Ordene la estructura devuelta por el AddressListQuery campo y agregue información de identificador de ámbito para las direcciones IPv6. Este código de control es compatible con Windows XP y sistemas operativos posteriores. Este valor es igual a la constante winsock 2 SIO_ADDRESS_LIST_SORT.

Ejemplos

En el ejemplo de código siguiente se llama al IOControl(IOControlCode, Byte[], Byte[]) método con un valor de parámetro DataToRead y se compara el resultado con el acceso a la propiedad .Available

static void DisplayPendingByteCount(Socket s)
{
    byte[] outValue = BitConverter.GetBytes(0);

    // Check how many bytes have been received.
    s.IOControl(IOControlCode.DataToRead, null, outValue);

    uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
    Console.Write("server has {0} bytes pending. ",
        bytesAvailable);
    Console.WriteLine("Available property says {1}.",
                     s.Available);

    return;
}

Comentarios

La IOControlCode enumeración proporciona valores con nombre para especificar los modos operativos de socket. Estos valores son los códigos de control pasados a la función Windows Sockets 2 (Winsock 2). WSAIoctl

Se aplica a