PROTOCOL_INFOA structure (nspapi.h)

La structure PROTOCOL_INFO contient des informations sur un protocole.

Syntaxe

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;

Membres

dwServiceFlags

Type : DWORD

Ensemble d’indicateurs de bits qui spécifie les services fournis par le protocole. Un ou plusieurs des indicateurs de bits suivants peuvent être définis.

Valeur Signification
XP_CONNECTIONLESS
Si cet indicateur est défini, le protocole fournit le service sans connexion (datagramme). Si cet indicateur est clair, le protocole fournit un transfert de données orienté connexion.
XP_GUARANTEED_DELIVERY
Si cet indicateur est défini, le protocole garantit que toutes les données envoyées atteignent la destination prévue. Si cet indicateur est clair, il n’existe aucune garantie de ce type.
XP_GUARANTEED_ORDER
Si cet indicateur est défini, le protocole garantit que les données arriveront dans l’ordre dans lequel elles ont été envoyées. Notez que cette caractéristique ne garantit pas la livraison des données, mais uniquement leur commande. Si cet indicateur est clair, l’ordre des données envoyées n’est pas garanti.
XP_MESSAGE_ORIENTED
Si cet indicateur est défini, le protocole est orienté message. Un protocole orienté message respecte les limites des messages. Si cet indicateur est clair, le protocole est orienté flux et le concept de limites de message n’est pas pertinent.
XP_PSEUDO_STREAM
Si cet indicateur est défini, le protocole est un protocole orienté message qui ignore les limites de message pour toutes les opérations de réception.

Cette fonctionnalité facultative est utile lorsque vous ne souhaitez pas que le protocole encadre les messages. Une application qui nécessite des caractéristiques orientées flux peut ouvrir un socket de type SOCK_STREAM pour les protocoles de transport qui prennent en charge cette fonctionnalité, quelle que soit la valeur d’iSocketType.

XP_GRACEFUL_CLOSE
Si cet indicateur est défini, le protocole prend en charge les opérations de fermeture en deux phases, également appelées opérations de fermeture normale. Si cet indicateur est clair, le protocole prend uniquement en charge les opérations de fermeture abandonnées.
XP_EXPEDITED_DATA
Si cet indicateur est défini, le protocole prend en charge les données accélérées, également appelées données urgentes.
XP_CONNECT_DATA
Si cet indicateur est défini, le protocole prend en charge les données de connexion.
XP_DISCONNECT_DATA
Si cet indicateur est défini, le protocole prend en charge les données de déconnexion.
XP_SUPPORTS_BROADCAST
Si cet indicateur est défini, le protocole prend en charge un mécanisme de diffusion.
XP_SUPPORTS_MULTICAST
Si cet indicateur est défini, le protocole prend en charge un mécanisme de multidiffusion.
XP_BANDWIDTH_ALLOCATION
Si cet indicateur est défini, le protocole prend en charge un mécanisme d’allocation d’une bande passante garantie à une application.
XP_FRAGMENTATION
Si cet indicateur est défini, le protocole prend en charge la fragmentation des messages ; L’unité MTU du réseau physique est masquée des applications.
XP_ENCRYPTS
Si cet indicateur est défini, le protocole prend en charge le chiffrement des données.

iAddressFamily

Type : INT

Valeur à passer en tant que paramètre af lorsque la fonction socket est appelée pour ouvrir un socket pour le protocole. Cette valeur de famille d’adresses définit de manière unique la structure des adresses de protocole, également appelées structures sockaddr , utilisées par le protocole.

iMaxSockAddr

Type : INT

Longueur maximale d’une adresse de socket prise en charge par le protocole, en octets.

iMinSockAddr

Type : INT

Longueur minimale d’une adresse de socket prise en charge par le protocole, en octets.

iSocketType

Type : INT

Valeur à passer en tant que paramètre de type lorsque la fonction socket est appelée pour ouvrir un socket pour le protocole.

Notez que si XP_PSEUDO_STREAM est défini dans dwServiceFlags, l’application peut spécifier SOCK_STREAM comme paramètre de type sur socket, quelle que soit la valeur de iSocketType.

iProtocol

Type : INT

Valeur à passer en tant que paramètre de protocole lorsque la fonction socket est appelée pour ouvrir un socket pour le protocole.

dwMessageSize

Type : DWORD

Taille de message maximale prise en charge par le protocole, en octets. Il s’agit de la taille maximale d’un message qui peut être envoyé ou reçu par l’hôte. Pour les protocoles qui ne prennent pas en charge l’encadrement des messages, la taille maximale réelle d’un message pouvant être envoyé à une adresse donnée peut être inférieure à cette valeur.

Les valeurs de taille de message spéciales suivantes sont définies.

Valeur Signification
0
Le protocole est orienté flux ; le concept de taille de message n’est pas pertinent.
0xFFFFFFFF
Le protocole est orienté message, mais il n’y a pas de taille de message maximale.

lpProtocol

Type : LPTSTR

Pointeur vers une chaîne terminée à zéro qui fournit un nom pour le protocole ; par exemple, « SPX2 ».

Remarques

Notes

L’en-tête nspapi.h définit PROTOCOL_INFO en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête nspapi.h

Voir aussi

EnumProtocols

socket