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 ».
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] |
|
d’en-tête |
nspapi.h |
Voir aussi
EnumProtocols
socket