_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
WSANOTINITIALISED
Un appel WSAStartup réussi doit se produire avant l’utilisation de cette fonction.
WSAENETDOWN
Le sous-système réseau a échoué.
WSAEFAULT
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 .
WSAEINPROGRESS
un appel de blocage Windows sockets 1,1 est en cours, ou le fournisseur de services traite toujours une fonction de rappel.
WSAEINVAL
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.
WSAENOPROTOOPT
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.
WSAENOTSOCK
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
Ws2ipdef. h (inclure Ws2tcpip. h)

Voir aussi

Sockets à double pile

getsockopt

in6 _ pktinfo

_PKTINFO IP

_Options de socket IPv6 IPPROTO

setsockopt

socle

WSAMSG

LPFN_WSARECVMSG (WSARecvMsg)