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 (datagram). 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, seule sa 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 des messages pour toutes les opérations de réception.
Cette fonctionnalité facultative est utile lorsque vous ne souhaitez pas que le protocole framee les messages. Une application qui nécessite des caractéristiques orientées flux peut ouvrir un socket avec le type SOCK_STREAM pour les protocoles de transport qui prennent en charge cette fonctionnalité, quelle que soit la valeur de 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 normales. 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 ; le MTU de réseau physique est masqué 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 de 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 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 maximale du message prise en charge par le protocole, en octets. Il s’agit de la taille maximale d’un message qui peut être envoyé à partir 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 sans fin qui fournit un nom pour le protocole ; par exemple, « SPX2 ».
Remarques
Note
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. Le mélange 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.
Exigences
Exigence
Valeur
client minimum pris en charge
Windows 2000 Professionnel [applications de bureau uniquement]
serveur minimum pris en charge
Windows 2000 Server [applications de bureau uniquement]