Partager via


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

Voir aussi

MULTICAST_MODE_TYPE

getsourcefilter

in_addr

setipv4sourcefilter

setsourcefilter