fonction getsourcefilter (ws2tcpip.h)
La fonction inline getsourcefilter récupère l’état du filtre de multidiffusion pour un socket IPv4 ou IPv6.
Syntaxe
int getsourcefilter(
[in] SOCKET Socket,
[in] ULONG Interface,
[in] const SOCKADDR *Group,
[in] int GroupLength,
[out] MULTICAST_MODE_TYPE *FilterMode,
[in, out] ULONG *SourceCount,
[out] SOCKADDR_STORAGE *SourceList
);
Paramètres
[in] Socket
Descripteur qui identifie un socket multidiffusion.
[in] Interface
Index d’interface de l’interface de multidiffusion.
[in] Group
Pointeur vers l’adresse de socket du groupe de multidiffusion.
[in] GroupLength
Longueur, en octets, de l’adresse de socket pointée vers le paramètre Group .
[out] FilterMode
Pointeur vers une valeur pour recevoir le mode de filtre multidiffusion pour l’adresse de groupe de multidiffusion lorsque la fonction est retournée.
[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, getsourcefilter 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 getsourcefilter est utilisée pour récupérer l’état du filtre multidiffusion pour un socket IPv4 ou IPv6.
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.
Configuration requise
Condition requise | Valeur |
---|---|
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 |