_Option de socket PKTINFO IPv6
L' _ option de socket PKTINFO IPv6 permet à une application d’activer ou de désactiver le retour des informations de paquets par la fonction LPFN_WSARECVMSG (WSARECVMSG) sur un socket IPv6.
Pour interroger l’état de cette option de socket, appelez la fonction getsockopt . Pour définir cette option, appelez la fonction setsockopt avec les paramètres suivants.
Valeur d’option de socket
La constante qui représente cette option de socket est 19.
Syntaxe
int getsockopt(
(SOCKET) s, // descriptor identifying a socket
(int) IPPROTO_IPV6, // level
(int) IPV6_PKTINFO, // optname
(char *) optval, // output buffer,
(int) optlen, // size of output buffer
);
int setsockopt(
(SOCKET) s, // descriptor identifying a socket
(int) IPPROTO_IPV6, // level
(int) IPV6_PKTINFO, // optname
(char *) optval, // input buffer,
(int) optlen, // size of input buffer
);
Paramètres
-
[ dans]
-
Descripteur identifiant le Socket.
-
de niveau [ dans]
-
Niveau auquel l’option est définie. Utilisez IPPROTO _ IPv6 pour cette opération.
-
nom_d [ ' $ dans]
-
Option de socket pour laquelle obtenir ou définir la valeur. Utilisez IPV6 _ PKTINFO pour cette opération.
-
optval [ à]
-
Pointeur vers la mémoire tampon contenant la valeur de l’option à définir. Ce paramètre doit pointer vers une mémoire tampon égale ou supérieure à la taille d’une valeur DWORD .
Cette valeur est traitée comme une valeur booléenne avec 0 utilisé pour indiquer false (désactivé) et une valeur différente de zéro pour indiquer la valeur true (activé).
-
optlen [ in, out]
-
Pointeur vers la taille, en octets, de la mémoire tampon optval . Cette taille doit être supérieure ou égale à la taille d’une valeur DWORD .
Valeur retournée
Si l’opération se termine avec succès, la fonction getsockopt ou setsockopt retourne la valeur zéro.
Si l’opération échoue, une valeur d’erreur de SOCKET _ est renvoyée et un code d’erreur spécifique peut être récupéré en appelant WSAGetLastError.
| Code d'erreur | Signification |
|---|---|
| Un appel WSAStartup réussi doit se produire avant l’utilisation de cette fonction. |
|
| Le sous-système réseau a échoué. |
|
| L’un des paramètres optval ou optlen pointent vers la mémoire qui n’est pas dans une partie valide de l’espace d’adressage de l’utilisateur. Cette erreur est également retournée si la valeur vers laquelle pointe le paramètre optlen est inférieure à la taille d’une valeur DWORD . |
|
| un appel de blocage Windows sockets 1,1 est en cours, ou le fournisseur de services traite toujours une fonction de rappel. |
|
| Argument non valide fourni. Cette erreur est retournée si le paramètre de niveau est inconnu ou non valide. sur Windows Vista et versions ultérieures, cette erreur est également retournée si le socket est dans un état de transition. |
|
| L’option est inconnue ou non prise en charge par la famille de protocoles indiquée. Cette erreur est retournée si le paramètre de type pour le descripteur de socket passé dans le paramètre s n’était pas chaussette _ DGRAM ou chaussette _ RAW. |
|
| Le descripteur n’est pas un Socket. |
Remarques
La fonction getsockopt appelée avec l' _ option de socket IPv6 PKTINFO permet à une application de déterminer si les informations de paquet doivent être retournées par la fonction LPFN_WSARECVMSG (WSARECVMSG)pour un socket IPv6.
La fonction setsockopt appelée avec l' _ option de socket PKTINFO IPv6 permet à une application d’activer ou de désactiver le retour des informations de paquets par la fonction LPFN_WSARECVMSG (WSARECVMSG) . L' _ option IPv6 PKTINFO pour un socket est désactivée (définie sur false) par défaut.
Lorsque cette option de socket est activée sur un socket IPv6 de type chaussette _ DGRAM ou chaussette _ RAW, la fonction LPFN_WSARECVMSG (WSARECVMSG) retourne des informations de paquets dans la structure WSAMSG vers laquelle pointe le paramètre lpMsg . L’un des objets de données de contrôle de la structure WSAMSG retournée contient une structure in6 _ pktinfo utilisée pour stocker les informations d’adresse de paquet reçues.
Pour les datagrammes reçus par la fonction LPFN_WSARECVMSG (WSARECVMSG) sur IPv6, le membre du contrôle de la structure WSAMSG reçu contient une structure WSABUF qui contient une structure WSACMSGHDR . Le membre de _ niveau CMSG de cette structure WSACMSGHDR contiendra IPPROTO _ IPv6, le membre de _ type CMSG de cette structure contiendrait IPv6 _ PKTINFO et le membre de _ données CMSG contiendrait une structure in6 _ PKTINFO utilisée pour stocker les informations d’adresse de paquet IPv6 reçues. L’adresse IPv6 de la structure in6 _ pktinfo est l’adresse IPv6 à partir de laquelle le paquet a été reçu.
Pour un socket de datagramme à double pile, si une application requiert la fonction LPFN_WSARECVMSG (WSARECVMSG) pour retourner les informations de paquets dans une structure WSAMSG pour les datagrammes reçus sur IPv4, l’option de socket IP _ PKTINFO doit avoir la valeur true sur le Socket. Si seule l' _ option IPv6 PKTINFO a la valeur true sur le socket, des informations de paquet sont fournies pour les datagrammes reçus via IPv6, mais elles peuvent ne pas être fournies pour les datagrammes reçus sur IPv4.
Notez que le fichier d’en-tête Ws2ipdef. h est automatiquement inclus dans Ws2tcpip. h et ne doit jamais être utilisé directement.
Configuration requise
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge |
Windows [Applications de bureau XP uniquement] |
| Serveur minimal pris en charge |
Windows Serveur 2003 [ applications de bureau uniquement] |
| En-tête |
|