Partilhar via


IOControlCode Enumeração

Definição

Especifica os códigos de controle de E/S compatíveis com o método IOControl(Int32, Byte[], Byte[]).

public enum class IOControlCode
public enum IOControlCode
type IOControlCode = 
Public Enum IOControlCode
Herança
IOControlCode

Campos

Nome Valor Description
EnableCircularQueuing 671088642

Substitua o datagrama enfileirado mais antigo por um datagrama de entrada quando as filas de mensagens de entrada estiverem cheias. Esse valor é igual à constante winsock 2 SIO_ENABLE_CIRCULAR_QUEUEING.

Flush 671088644

Descarte o conteúdo da fila de envio. Esse valor é igual à constante winsock 2 SIO_FLUSH.

AddressListChange 671088663

Habilite a notificação de recebimento quando a lista de interfaces locais da família de protocolos do soquete for alterada. Esse valor é igual à constante winsock 2 SIO_ADDRESS_LIST_CHANGE.

DataToRead 1074030207

Retorne o número de bytes disponíveis para leitura. Esse valor é igual à constante Winsock 2 FIONREAD.

OobDataRead 1074033415

Retorne informações sobre dados fora de banda aguardando para serem recebidos. Ao usar esse código de controle em soquetes de fluxo, o valor retornado indica o número de bytes disponíveis.

GetBroadcastAddress 1207959557

Retorne uma estrutura SOCKADDR que contém o endereço de difusão para a família de endereços do soquete atual. O endereço retornado pode ser usado com o SendTo método. Esse valor é igual à constante de SIO_GET_BROADCAST_ADDRESS Winsock 2. Esse valor pode ser usado somente em soquetes UDP (User Datagram Protocol).

AddressListQuery 1207959574

Retorne a lista de interfaces locais às quais o soquete pode ser associado. Esse valor é igual à constante winsock 2 SIO_ADDRESS_LIST_QUERY.

QueryTargetPnpHandle 1207959576

Recupere o identificador SOCKET do provedor subjacente. Esse identificador pode ser usado para receber uma notificação de evento plug-and-play. Esse valor é igual à constante winsock 2 SIO_QUERY_TARGET_PNP_HANDLE.

AsyncIO 2147772029

Habilite a notificação para quando os dados estiverem aguardando para serem recebidos. Esse valor é igual à constante FIOASYNC winsock 2.

NonBlockingIO 2147772030

Controlar o comportamento de bloqueio do soquete. Se o argumento especificado com esse código de controle for zero, o soquete será colocado no modo de bloqueio. Se o argumento não for zero, o soquete será colocado no modo sem bloqueio. Esse valor é igual à constante Winsock 2 FIONBIO.

AssociateHandle 2281701377

Associe esse soquete ao identificador especificado de uma interface complementar. Consulte o anexo específico do protocolo apropriado na referência ou documentação do Winsock 2 para a interface complementar específica para obter detalhes adicionais. É recomendável que o COM (Component Object Model) seja usado em vez desse IOCTL para descobrir e rastrear outras interfaces que possam ter suporte por um soquete. Esse código de controle está presente para compatibilidade com versões anteriores com sistemas em que COM não está disponível ou não pode ser usado por algum outro motivo. Esse valor é igual à constante winsock 2 SIO_ASSOCIATE_HANDLE.

MultipointLoopback 2281701385

Controlar se os dados multicast enviados pelo soquete são exibidos como dados de entrada na fila de recebimento de soquetes. Esse valor é igual à constante winsock 2 SIO_MULTIPOINT_LOOPBACK.

MulticastScope 2281701386

Controle o número de vezes que um pacote multicast pode ser encaminhado por um roteador, também conhecido como TTL (Time to Live) ou contagem de saltos. Esse valor é igual à constante winsock 2 SIO_MULTICAST_SCOPE.

SetQos 2281701387

Defina os atributos de Qualidade do Serviço (QOS) para o soquete. O QOS define os requisitos de largura de banda para o soquete. Esse valor é igual à constante winsock 2 SIO_SET_QOS.

SetGroupQos 2281701388

Defina os atributos de Qualidade de Serviço (QOS) para o grupo de soquetes. Esse valor é reservado para uso futuro e é igual à constante winsock 2 SIO_SET_GROUP_QOS.

RoutingInterfaceChange 2281701397

Habilite a notificação de recebimento quando a interface local usada para acessar um ponto de extremidade remoto for alterada. Esse valor é igual à constante winsock 2 SIO_ROUTING_INTERFACE_CHANGE.

NamespaceChange 2281701401

Controlar se o soquete recebe notificação quando uma consulta de namespace se torna inválida. Esse código de controle tem suporte no Windows XP e em sistemas operacionais posteriores. Esse valor é igual à constante winsock 2 SIO_NSP_NOTIFY_CHANGE.

ReceiveAll 2550136833

Habilite o recebimento de todos os pacotes IPv4 na rede. O soquete deve ter família de endereços InterNetwork, o tipo de soquete deve ser Rawe o tipo de protocolo deve ser IP. O usuário atual deve pertencer ao grupo Administradores no computador local e o soquete deve estar associado a uma porta específica. Esse valor é igual à constante de SIO_RCVALL Winsock 2.

ReceiveAllMulticast 2550136834

Habilite o recebimento de todos os pacotes IPv4 multicast na rede. São pacotes com endereços de destino no intervalo de 224.0.0.0 a 239.255.255.255.255. O soquete deve ter família de endereços InterNetwork, o tipo de soquete deve ser Rawe o tipo de protocolo deve ser Udp. O usuário atual deve pertencer ao grupo Administradores no computador local e o soquete deve estar associado a uma porta específica. Esse valor é igual à constante de SIO_RCVALL_MCAST Winsock 2.

ReceiveAllIgmpMulticast 2550136835

Habilite o recebimento de todos os pacotes IGMP (Internet Group Management Protocol) na rede. O soquete deve ter família de endereços InterNetwork, o tipo de soquete deve ser Rawe o tipo de protocolo deve ser Igmp. O usuário atual deve pertencer ao grupo Administradores no computador local e o soquete deve estar associado a uma porta específica. Esse valor é igual à constante winsock 2 SIO_RCVALL_IGMPMCAST.

KeepAliveValues 2550136836

Controlar o envio de pacotes de keep-alive TCP e o intervalo no qual eles são enviados. Para obter informações adicionais, consulte a seção RFC 1122 4.2.3.6. Esse valor é igual à constante winsock 2 SIO_KEEPALIVE_VALS.

AbsorbRouterAlert 2550136837

Esse valor é igual à constante winsock 2 SIO_ABSORB_RTRALERT.

UnicastInterface 2550136838

Defina a interface usada para pacotes unicast de saída. Esse valor é igual à constante winsock 2 SIO_UCAST_IF.

LimitBroadcasts 2550136839

Esse valor é igual à constante de SIO_LIMIT_BROADCASTS Winsock 2.

BindToInterface 2550136840

Associe o soquete a um índice de interface especificado. Esse valor é igual à constante winsock 2 SIO_INDEX_BIND.

MulticastInterface 2550136841

Defina a interface usada para pacotes multicast de saída. A interface é identificada pelo índice. Esse valor é igual à constante de SIO_INDEX_MCASTIF Winsock 2.

AddMulticastGroupOnInterface 2550136842

Ingresse em um grupo multicast usando uma interface identificada por seu índice. Esse valor é igual à constante winsock 2 SIO_INDEX_ADD_MCAST.

DeleteMulticastGroupFromInterface 2550136843

Remova o soquete de um grupo multicast. Esse valor é igual à constante winsock 2 SIO_INDEX_ADD_MCAST.

GetExtensionFunctionPointer 3355443206

Obtenha funções específicas do provedor que não fazem parte da especificação winsock. As funções são especificadas usando o GUID atribuído pelo provedor. Esse valor é igual à constante winsock 2 SIO_GET_EXTENSION_FUNCTION_POINTER.

GetQos 3355443207

Recupere a estrutura QOS associada ao soquete. Esse valor é igual à constante winsock 2 SIO_GET_QOS.

GetGroupQos 3355443208

Retorne os atributos de Qualidade de Serviço (QOS) para o grupo de soquetes. Esse valor é reservado para uso futuro e é igual à constante de SIO_GET_GROUP_QOS Winsock 2.

TranslateHandle 3355443213

Retorne um identificador para o soquete válido no contexto de uma interface complementar. Esse valor é igual à constante winsock 2 SIO_TRANSLATE_HANDLE.

RoutingInterfaceQuery 3355443220

Retorne os endereços de interface que podem ser usados para se conectar ao endereço remoto especificado. Esse valor é igual à constante winsock 2 SIO_ROUTING_INTERFACE_QUERY.

AddressListSort 3355443225

Classifique a estrutura retornada pelo AddressListQuery campo e adicione informações de ID de escopo para endereços IPv6. Esse código de controle tem suporte no Windows XP e em sistemas operacionais posteriores. Esse valor é igual à constante de SIO_ADDRESS_LIST_SORT Winsock 2.

Exemplos

O exemplo de código a seguir chama o IOControl(IOControlCode, Byte[], Byte[]) método com um valor de parâmetro DataToRead e compara o resultado com o acesso à propriedade.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;
}

Comentários

A IOControlCode enumeração fornece valores nomeados para especificar modos operacionais de soquete. Esses valores são os códigos de controle passados para a função Windows Sockets 2 (Winsock 2 WSAIoctl ).

Aplica-se a