getipv4sourcefilter, fonction (ws2tcpip.h)
La fonction inline getipv4sourcefilter récupère l’état du filtre multidiffusion pour un socket IPv4.
Syntaxe
int getipv4sourcefilter(
[in] SOCKET Socket,
[in] IN_ADDR Interface,
[in] IN_ADDR Group,
[out] MULTICAST_MODE_TYPE *FilterMode,
[in, out] ULONG *SourceCount,
[out] IN_ADDR *SourceList
);
Paramètres
[in] Socket
Descripteur qui identifie un socket multidiffusion.
[in] Interface
Adresse IPv4 locale de l’interface ou index d’interface sur lequel le groupe de multidiffusion doit être joint ou supprimé.
Cette valeur est dans l’ordre des octets réseau. Si ce membre spécifie une adresse IPv4 de 0.0.0.0, l’interface de multidiffusion IPv4 par défaut est utilisée.
Toute adresse IP dans le bloc 0.x.x.x (premier octet de 0) à l’exception de l’adresse IPv4 0.0.0.0 est traitée comme un index d’interface. Un index d’interface est un nombre 24 bits et le bloc d’adresse IPv4 0.0.0/8 n’est pas utilisé (cette plage est réservée).
Utiliser un index d’interface de 1 serait identique à une adresse IP de 0.0.0.1.
[in] Group
Adresse IPv4 du groupe de multidiffusion.
[out] FilterMode
Pointeur vers une valeur pour recevoir le mode de filtre multidiffusion pour l’adresse de groupe de multidiffusion lorsque la fonction retourne.
[in, out] SourceCount
En entrée, pointeur vers une valeur qui indique le nombre maximal d’adresses sources qui s’adapteront à la mémoire tampon pointée par le paramètre SourceList .
Sur la sortie, pointeur vers une valeur qui indique le nombre total d’adresses sources associées au filtre de multidiffusion.
[out] SourceList
Pointeur vers une mémoire tampon pour recevoir la liste des adresses IP associées au filtre de multidiffusion.
Si SourceCount est égal à zéro en entrée, un pointeur NULL peut être fourni.
Valeur retournée
En cas de réussite, getipv4sourcefilter retourne NO_ERROR (0). Toute valeur de retour différente de zéro indique un échec et un code d’erreur spécifique peut être récupéré en appelant WSAGetLastError.
Code d'erreur | Signification |
---|---|
L’espace tampon est insuffisant. | |
Le descripteur n’est pas un socket. |
Remarques
La fonction inline getipv4sourcefilter est utilisée pour récupérer l’état du filtre multidiffusion pour un socket IPv4.
Si l’application ne connaît pas la taille de la liste source à l’avance, elle peut faire une estimation (zéro, par exemple). Si, à l’achèvement, le paramètre SourceCount contient une valeur plus élevée, l’opération peut être répétée avec une mémoire tampon suffisamment grande.
En retour, le paramètre SourceCount est toujours mis à jour pour correspondre au nombre total de sources dans le filtre, tandis que la mémoire tampon pointée par le paramètre SourceList contiendra autant d’adresses sources que vous le souhaitez, jusqu’au minimum de la taille du tableau transmise en tant que valeur SourceCount d’origine et le nombre total de sources dans le filtre.
Cette fonction fait partie des extensions d’interface de socket pour les filtres sources multidiffusion définis dans RFC 3678. Une application peut utiliser ces fonctions pour récupérer et définir les filtres d’adresse source de multidiffusion associés à un socket.
Windows Phone 8 : cette fonction est prise en charge pour les applications du Store Windows Phone Windows Phone 8 et versions ultérieures.
Windows 8.1 et Windows Server 2012 R2 : cette fonction est prise en charge pour les applications du Windows Store sur Windows 8.1, Windows Server 2012 R2 et versions ultérieures.
Spécifications
Client minimal pris en charge | Windows 8.1, Windows Vista [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | ws2tcpip.h |
Bibliothèque | Ws2_32.lib |
DLL | Ws2_32.dll |