A estrutura PROTOCOL_INFO contém informações sobre um protocolo.
Sintaxe
typedef struct _PROTOCOL_INFOW {
DWORD dwServiceFlags;
INT iAddressFamily;
INT iMaxSockAddr;
INT iMinSockAddr;
INT iSocketType;
INT iProtocol;
DWORD dwMessageSize;
LPWSTR lpProtocol;
} PROTOCOL_INFOW, *PPROTOCOL_INFOW, *LPPROTOCOL_INFOW;
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 estiver definido, o protocolo fornecerá um serviço sem conexão (datagram). Se esse sinalizador estiver claro, o protocolo fornecerá transferência de dados orientada à conexão.
XP_GUARANTEED_DELIVERY
Se esse sinalizador for definido, o protocolo garantirá que todos os dados enviados chegarão 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 sua ordem. 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 da mensagem. Se esse sinalizador estiver claro, o protocolo será orientado para 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 enquadrou mensagens. Um aplicativo que requer características orientadas a fluxo pode abrir um soquete com 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 só oferecerá suporte a operações de fechamento anulativas.
XP_EXPEDITED_DATA
Se esse sinalizador for definido, o protocolo oferecerá suporte a dados acelerados, 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 estiver definido, o protocolo oferecerá suporte à desconexão de dados.
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 estiver 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 do 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 de 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 tipo parâmetro quando a função do 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 tipo parâmetro para de soquete, independentemente do valor de iSocketType.
iProtocol
Tipo: INT
Valor a ser passado como o protocolo parâmetro quando a função do 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 especiais a seguir são definidos.
Valor
Significado
0
O protocolo é orientado para 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 com término zero que fornece um nome para o protocolo; por exemplo, "SPX2".
Observações
Nota
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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito
Valor
de cliente com suporte mínimo
Windows 2000 Professional [somente aplicativos da área de trabalho]
servidor com suporte mínimo
Windows 2000 Server [somente aplicativos da área de trabalho]