IOControlCode Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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
).