estrutura PROTOCOL_INFOA (nspapi.h)

A estrutura PROTOCOL_INFO contém informações sobre um protocolo.

Sintaxe

typedef struct _PROTOCOL_INFOA {
  DWORD dwServiceFlags;
  INT   iAddressFamily;
  INT   iMaxSockAddr;
  INT   iMinSockAddr;
  INT   iSocketType;
  INT   iProtocol;
  DWORD dwMessageSize;
  LPSTR lpProtocol;
} PROTOCOL_INFOA, *PPROTOCOL_INFOA, *LPPROTOCOL_INFOA;

Membros

dwServiceFlags

Tipo: DWORD

Um conjunto de sinalizadores de bits que especifica os serviços fornecidos pelo protocolo. Um ou mais dos sinalizadores de bit a seguir podem ser definidos.

Valor Significado
XP_CONNECTIONLESS
Se esse sinalizador for definido, o protocolo fornecerá serviço sem conexão (datagrama). Se esse sinalizador estiver claro, o protocolo fornecerá transferência de dados orientada a conexão.
XP_GUARANTEED_DELIVERY
Se esse sinalizador for definido, o protocolo garantirá que todos os dados enviados cheguem ao destino pretendido. Se esse sinalizador estiver claro, não haverá tal garantia.
XP_GUARANTEED_ORDER
Se esse sinalizador for definido, o protocolo garantirá que os dados chegarão na ordem em que foram enviados. Observe que essa característica não garante a entrega dos dados, apenas seu pedido. Se esse sinalizador estiver claro, a ordem dos dados enviados não será garantida.
XP_MESSAGE_ORIENTED
Se esse sinalizador estiver definido, o protocolo será orientado a mensagens. Um protocolo orientado a mensagens respeita os limites das mensagens. Se esse sinalizador estiver claro, o protocolo será orientado a fluxo e o conceito de limites de mensagem será irrelevante.
XP_PSEUDO_STREAM
Se esse sinalizador for definido, o protocolo será um protocolo orientado a mensagens que ignora os limites de mensagens para todas as operações de recebimento.

Essa funcionalidade opcional é útil quando você não deseja que o protocolo enquadure mensagens. Um aplicativo que requer características orientadas a fluxo pode abrir um soquete com o tipo SOCK_STREAM para protocolos de transporte que dão suporte a essa funcionalidade, independentemente do valor de iSocketType.

XP_GRACEFUL_CLOSE
Se esse sinalizador for definido, o protocolo oferecerá suporte a operações de fechamento em duas fases, também conhecidas como operações de fechamento normal. Se esse sinalizador estiver claro, o protocolo oferecerá suporte apenas a operações de fechamento anulativas.
XP_EXPEDITED_DATA
Se esse sinalizador for definido, o protocolo oferecerá suporte a dados agilizados, também conhecidos como dados urgentes.
XP_CONNECT_DATA
Se esse sinalizador estiver definido, o protocolo oferecerá suporte a dados de conexão.
XP_DISCONNECT_DATA
Se esse sinalizador for definido, o protocolo oferecerá suporte a dados de desconexão.
XP_SUPPORTS_BROADCAST
Se esse sinalizador for definido, o protocolo oferecerá suporte a um mecanismo de difusão.
XP_SUPPORTS_MULTICAST
Se esse sinalizador for definido, o protocolo oferecerá suporte a um mecanismo multicast.
XP_BANDWIDTH_ALLOCATION
Se esse sinalizador for definido, o protocolo oferecerá suporte a um mecanismo para alocar uma largura de banda garantida a um aplicativo.
XP_FRAGMENTATION
Se esse sinalizador estiver definido, o protocolo oferecerá suporte à fragmentação de mensagens; A MTU de rede física está oculta dos aplicativos.
XP_ENCRYPTS
Se esse sinalizador for definido, o protocolo oferecerá suporte à criptografia de dados.

iAddressFamily

Tipo: INT

Valor a ser passado como o parâmetro af quando a função de soquete é chamada para abrir um soquete para o protocolo. Esse valor da família de endereços define exclusivamente a estrutura de endereços de protocolo, também conhecidas como estruturas sockaddr , usadas pelo protocolo.

iMaxSockAddr

Tipo: INT

Comprimento máximo de um endereço de soquete compatível com o protocolo, em bytes.

iMinSockAddr

Tipo: INT

Comprimento mínimo de um endereço de soquete compatível com o protocolo, em bytes.

iSocketType

Tipo: INT

Valor a ser passado como o parâmetro de tipo quando a função de soquete é chamada para abrir um soquete para o protocolo.

Observe que, se XP_PSEUDO_STREAM for definido em dwServiceFlags, o aplicativo poderá especificar SOCK_STREAM como o parâmetro de tipo para soquete, independentemente do valor de iSocketType.

iProtocol

Tipo: INT

Valor a ser passado como o parâmetro de protocolo quando a função de soquete é chamada para abrir um soquete para o protocolo.

dwMessageSize

Tipo: DWORD

Tamanho máximo da mensagem compatível com o protocolo, em bytes. Esse é o tamanho máximo de uma mensagem que pode ser enviada ou recebida pelo host. Para protocolos que não dão suporte ao enquadramento de mensagens, o tamanho máximo real de uma mensagem que pode ser enviada para um determinado endereço pode ser menor que esse valor.

Os valores de tamanho de mensagem especial a seguir são definidos.

Valor Significado
0
O protocolo é orientado a fluxo; o conceito de tamanho da mensagem não é relevante.
0xffffffff
O protocolo é orientado a mensagens, mas não há tamanho máximo de mensagem.

lpProtocol

Tipo: LPTSTR

Ponteiro para uma cadeia de caracteres terminada em zero que fornece um nome para o protocolo; por exemplo, "SPX2".

Comentários

Observação

O cabeçalho nspapi.h define PROTOCOL_INFO como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho nspapi.h

Confira também

EnumProtocols

socket