Partager via


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
WSAENOBUFS
L’espace tampon est insuffisant.
WSAENOTSOCK
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

Voir aussi

MULTICAST_MODE_TYPE

SOCKADDR_STORAGE

getipv4sourcefilter

setipv4sourcefilter

setsourcefilter