Compartilhar via


IOControlCode Enumeração

Definição

Especifica os códigos de controle de E/S com suporte pelo método IOControl(Int32, Byte[], Byte[]).

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

Campos

AbsorbRouterAlert 2550136837

Esse valor é igual à constante Winsock 2 SIO_ABSORB_RTRALERT.

AddMulticastGroupOnInterface 2550136842

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

AddressListChange 671088663

Habilita receber notificação quando a lista de interfaces locais para a família de protocolo do soquete se altera. Esse valor é igual à constante Winsock 2 SIO_ADDRESS_LIST_CHANGE.

AddressListQuery 1207959574

Retorna a lista de interfaces locais que pode se associar ao soquete. Esse valor é igual à constante Winsock 2 SIO_ADDRESS_LIST_QUERY.

AddressListSort 3355443225

Classifica a estrutura retornada pelo campo AddressListQuery e adicionar informações de identificação de escopo para endereços IPv6. Este código de controle tem suporte nos sistemas operacionais Windows XP e posteriores. Esse valor é igual à constante Winsock 2 SIO_ADDRESS_LIST_SORT.

AssociateHandle 2281701377

Associe esse soquete com o identificador especificado de uma interface de assistente. 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 modelo de objeto de componente (COM) seja usado em vez deste IOCTL, para descobrir e controlar outras interfaces que possam ter suporte por um soquete. Esse código de controle está presente para fins de compatibilidade 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.

AsyncIO 2147772029

Habilitar a notificação para quando os dados estão aguardando para serem recebidos. Esse valor é igual à constante Winsock 2 FIOASYNC.

BindToInterface 2550136840

Associar o soquete à um índice de interface especificada. Esse valor é igual à constante Winsock 2 SIO_INDEX_BIND.

DataToRead 1074030207

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

DeleteMulticastGroupFromInterface 2550136843

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

EnableCircularQueuing 671088642

Substitui o datagrama na fila mais antigo com um datagrama de entrada quando as filas de mensagens de entrada estão cheias. Esse valor é igual à constante Winsock 2 SIO_ENABLE_CIRCULAR_QUEUEING.

Flush 671088644

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

GetBroadcastAddress 1207959557

Retorna uma estrutura SOCKADDR que contém o endereço de difusão da família de endereços de soquete atual. O endereço retornado pode ser usado com o método SendTo. Esse valor é igual à constante Winsock 2 SIO_GET_BROADCAST_ADDRESS. Esse valor pode ser usado apenas em soquetes do protocolo UDP.

GetExtensionFunctionPointer 3355443206

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

GetGroupQos 3355443208

Retorna os atributos de qualidade de serviço (QoS) para o grupo de soquete. Este valor é reservado para uso futuro e é igual à constante Winsock 2 SIO_GET_GROUP_QOS.

GetQos 3355443207

Recupere a estrutura QoS associada ao soquete. Esse valor é igual à constante Winsock 2 SIO_GET_QOS.

KeepAliveValues 2550136836

Controla envio de pacotes keep-alive do TCP e o intervalo em que eles são enviados. Para obter mais informações, consulte RFC 1122 seção 4.2.3.6. Esse valor é igual à constante Winsock 2 SIO_KEEPALIVE_VALS.

LimitBroadcasts 2550136839

Esse valor é igual à constante Winsock 2 SIO_LIMIT_BROADCASTS.

MulticastInterface 2550136841

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

MulticastScope 2281701386

Controla o número de vezes que um pacote de multicast pode ser encaminhado por um roteador, também conhecido como vida útil (TTL) ou a contagem de saltos. Esse valor é igual à constante Winsock 2 SIO_MULTICAST_SCOPE.

MultipointLoopback 2281701385

Controla se dados de multicast enviados por soquete aparecem como dados de entrada nos soquetes fila de recebimento. Esse valor é igual à constante Winsock 2 SIO_MULTIPOINT_LOOPBACK.

NamespaceChange 2281701401

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

NonBlockingIO 2147772030

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

OobDataRead 1074033415

Retorna informações sobre dados out-of-band 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.

QueryTargetPnpHandle 1207959576

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

ReceiveAll 2550136833

Habilita o recebimento de todos os pacotes IPv4 na rede. O soquete deve ter a família de endereço 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 ser associado a uma porta específica. Esse valor é igual à constante Winsock 2 SIO_RCVALL.

ReceiveAllIgmpMulticast 2550136835

Habilita o recebimento de todos os pacotes de Internet Group Management Protocol (IGMP) na rede. O soquete deve ter a família de endereço 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 ser associado a uma porta específica. Esse valor é igual à constante Winsock 2 SIO_RCVALL_IGMPMCAST.

ReceiveAllMulticast 2550136834

Habilita o recebimento de todos os pacotes IPv4 multicast na rede. Estes são os pacotes com endereços de destino no intervalo de 224.0.0.0 a 239.255.255.255. O soquete deve ter a família de endereço 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 ser associado a uma porta específica. Esse valor é igual à constante Winsock 2 SIO_RCVALL_MCAST.

RoutingInterfaceChange 2281701397

Habilita o recebimento de notificações quando a interface local usada para acessar um alterações de ponto de extremidade remoto. Esse valor é igual à constante Winsock 2 SIO_ROUTING_INTERFACE_CHANGE.

RoutingInterfaceQuery 3355443220

Retorna 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.

SetGroupQos 2281701388

Define os atributos de qualidade de serviço (QoS) para o grupo de soquete. Esse valor é reservado para uso futuro e é igual à constante Winsock 2 SIO_SET_GROUP_QOS.

SetQos 2281701387

Define os atributos de qualidade de serviço (QoS) para o soquete. QoS define os requisitos de largura de banda para o soquete. Esse valor é igual à constante Winsock 2 SIO_SET_QOS.

TranslateHandle 3355443213

Retorna um identificador para o soquete que é válido no contexto de uma interface de assistente. Esse valor é igual à constante Winsock 2 SIO_TRANSLATE_HANDLE.

UnicastInterface 2550136838

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

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

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;
}

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