Compartir vía


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

AbsorbRouterAlert 2550136837

Este valor es igual a la constante SIO_ABSORB_RTRALERT de Winsock 2.

AddMulticastGroupOnInterface 2550136842

Se utiliza para unirse a un grupo de multidifusión a través de una interfaz identificada por su índice. Este valor es igual a la constante SIO_INDEX_ADD_MCAST de Winsock 2.

AddressListChange 671088663

Habilita la recepción de notificaciones cuando cambia la lista de interfaces locales de la familia de protocolos del socket. Este valor es igual a la constante SIO_ADDRESS_LIST_CHANGE de Winsock 2.

AddressListQuery 1207959574

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

AddressListSort 3355443225

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

AssociateHandle 2281701377

Asocie este socket al identificador (handle) especificado de la interfaz correspondiente. Consulte el anexo específico del protocolo adecuado en la referencia o documentación de Winsock 2 para obtener más detalles sobre la interfaz complementaria concreta. Se recomienda utilizar el Modelo de objetos componentes (COM) en lugar de este comando IOCTL para detectar y realizar un seguimiento del resto de interfaces que puede admitir un socket. Este código de control está presente por la compatibilidad con versiones anteriores, en sistemas donde COM no esté disponible o no se pueda utilizar por alguna otra razón. Este valor es igual a la constante SIO_ASSOCIATE_HANDLE de Winsock 2.

AsyncIO 2147772029

Habilita la notificación cuando hay datos a la espera de recibirse. Este valor es igual a la constante FIOASYNC de Winsock 2.

BindToInterface 2550136840

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

DataToRead 1074030207

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

DeleteMulticastGroupFromInterface 2550136843

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

EnableCircularQueuing 671088642

Reemplaza el datagrama en cola más antiguo por un datagrama de entrada cuando las colas de mensajes entrantes están completas. Este valor es igual a la constante SIO_ENABLE_CIRCULAR_QUEUEING de Winsock 2.

Flush 671088644

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

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 utilizar con el método SendTo. Este valor es igual a la constante SIO_GET_BROADCAST_ADDRESS de Winsock 2. Su valor sólo se puede utilizar en sockets UDP (Protocolo de datagramas de usuarios).

GetExtensionFunctionPointer 3355443206

Obtiene funciones específicas del proveedor que no forman parte de la especificación Winsock. Las funciones se especifican utilizando el GUID asignado por su proveedor. Este valor es igual a la constante SIO_GET_EXTENSION_FUNCTION_POINTER de Winsock 2.

GetGroupQos 3355443208

Devuelve los atributos de Calidad del servicio (QoS) del grupo de sockets. Este valor se reserva para uso futuro y es igual a la constante SIO_GET_GROUP_QOS de Winsock 2.

GetQos 3355443207

Recupera la estructura QoS asociada al socket. Este valor es igual a la constante SIO_GET_QOS de Winsock 2.

KeepAliveValues 2550136836

Controla el envío de paquetes TCP "keep-alive" y el intervalo en el que se envían. Para obtener información adicional, consulte el documento RFC 1122 sección 4.2.3.6. Este valor es igual a la constante SIO_KEEPALIVE_VALS de Winsock 2.

LimitBroadcasts 2550136839

Este valor es igual a la constante SIO_LIMIT_BROADCASTS de Winsock 2.

MulticastInterface 2550136841

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

MulticastScope 2281701386

Controla el número de veces que un enrutador puede reenviar un paquete de multidifusión, también conocido como TTL (Período de vida o, en inglés, Time To Live) o número de saltos. Este valor es igual a la constante SIO_MULTICAST_SCOPE de Winsock 2.

MultipointLoopback 2281701385

Controla si los datos de multidifusión enviados por el socket aparecerán como datos de entrada en la cola de recepción de sockets. Este valor es igual a la constante SIO_MULTIPOINT_LOOPBACK de Winsock 2.

NamespaceChange 2281701401

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

NonBlockingIO 2147772030

Controla el comportamiento de bloqueo del socket. Si el argumento especificado en 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 de no bloqueo. Este valor es igual a la constante FIONBIO de Winsock 2.

OobDataRead 1074033415

Devuelve información sobre datos fuera de banda a la espera de recibirse. Al utilizar este código de control en sockets de secuencia, el valor devuelto indica el número de bytes disponibles.

QueryTargetPnpHandle 1207959576

Recupera el identificador SOCKET del proveedor subyacente. Dicho identificador se puede utilizar para recibir la notificación de eventos Plug and Play. Este valor es igual a la constante SIO_QUERY_TARGET_PNP_HANDLE de Winsock 2.

ReceiveAll 2550136833

Permite la recepción de todos los paquetes IPv4 de la red. El socket debe tener la familia de direcciones InterNetwork; el tipo de socket debe ser Raw y 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 concreto. Este valor es igual a la constante SIO_RCVALL de Winsock 2.

ReceiveAllIgmpMulticast 2550136835

Permite la recepción de todos los paquetes IGMP (Protocolo de administración de grupos de Internet) de la red. El socket debe tener la familia de direcciones InterNetwork; el tipo de socket debe ser Raw y 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 concreto. Este valor es igual a la constante SIO_RCVALL_IGMPMCAST de Winsock 2.

ReceiveAllMulticast 2550136834

Permite la recepción de todos los paquetes de multidifusión IPv4 de la red. Éstos son paquetes cuya dirección de destino se encuentra en el intervalo 224.0.0.0 a 239.255.255.255. El socket debe tener la familia de direcciones InterNetwork; el tipo de socket debe ser Raw y 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 concreto. Este valor es igual a la constante SIO_RCVALL_MCAST de Winsock 2.

RoutingInterfaceChange 2281701397

Habilita la recepción de notificación cuando la interfaz local utilizada para obtener acceso a un extremo remoto de la red varía. Este valor es igual a la constante SIO_ROUTING_INTERFACE_CHANGE de Winsock 2.

RoutingInterfaceQuery 3355443220

Devuelve las direcciones de interfaz que se pueden utilizar para conectar con la dirección remota especificada. Este valor es igual a la constante SIO_ROUTING_INTERFACE_QUERY de Winsock 2.

SetGroupQos 2281701388

Establece los atributos de Calidad del servicio (QoS) del grupo de sockets. Este valor se reserva para uso futuro y es igual a la constante SIO_SET_GROUP_QOS de Winsock 2.

SetQos 2281701387

Establece los atributos de Calidad del servicio (QoS) del socket. QoS define los requisitos de ancho de banda del socket. Este valor es igual a la constante SIO_SET_QOS de Winsock 2.

TranslateHandle 3355443213

Devuelve un identificador (handle) del socket que es válido en el contexto de una interfaz de complemento. Este valor es igual a la constante SIO_TRANSLATE_HANDLE de Winsock 2.

UnicastInterface 2550136838

Establece la interfaz utilizada para los paquetes de unidifusión salientes. Este valor es igual a la constante SIO_UCAST_IF de Winsock 2.

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

void DisplayPendingByteCount( Socket^ s )
{
   array<Byte>^ outValue = BitConverter::GetBytes( 0 );
   
   // Check how many bytes have been received.
   s->IOControl( IOControlCode::DataToRead, nullptr, outValue );

   UInt32 bytesAvailable = BitConverter::ToUInt32( outValue, 0 );
   Console::Write( "server has {0} bytes pending,",
      bytesAvailable );
   Console::WriteLine( "Available property says {1}.",
      s->Available );
   return;
}
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 modos operativos de socket. Estos valores son los códigos de control que se pasan a la función Windows Sockets 2 (Winsock 2 WSAIoctl ).

Se aplica a