Freigeben über


getsourcefilter-Funktion (ws2tcpip.h)

Die Inlinefunktion getsourcefilter ruft den Multicastfilterstatus für einen IPv4- oder IPv6-Socket ab.

Syntax

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
);

Parameter

[in] Socket

Ein Deskriptor, der einen Multicastsocket identifiziert.

[in] Interface

Der Schnittstellenindex der Multicastschnittstelle.

[in] Group

Ein Zeiger auf die Socketadresse der Multicastgruppe.

[in] GroupLength

Die Länge der Socketadresse in Bytes, auf die vom Group-Parameter verwiesen wird.

[out] FilterMode

Ein Zeiger auf einen Wert, um den Multicastfiltermodus für die Multicastgruppenadresse zu empfangen, wenn die Funktion zurückgibt.

[in, out] SourceCount

Bei der Eingabe ein Zeiger auf einen Wert, der die maximale Anzahl von Quelladressen angibt, die in den Puffer passen, auf den der SourceList-Parameter verweist.

In der Ausgabe ein Zeiger auf einen Wert, der die Gesamtanzahl der Quelladressen angibt, die dem Multicastfilter zugeordnet sind.

[out] SourceList

Ein Zeiger auf einen Puffer, um die Liste der IP-Adressen zu empfangen, die dem Multicastfilter zugeordnet sind.

Wenn SourceCount bei der Eingabe null ist, wird möglicherweise ein NULL-Zeiger angegeben.

Rückgabewert

Bei Erfolg gibt getsourcefilter NO_ERROR (0) zurück. Jeder nichtzero-Rückgabewert gibt einen Fehler an, und ein bestimmter Fehlercode kann durch Aufrufen von WSAGetLastError abgerufen werden.

Fehlercode Bedeutung
WSAENOBUFS
Es ist nicht genügend Pufferspeicher verfügbar.
WSAENOTSOCK
Der Deskriptor ist kein Socket.

Hinweise

Die Inlinefunktion getsourcefilter wird verwendet, um den Multicastfilterstatus für einen IPv4- oder IPv6-Socket abzurufen.

Wenn die App die Größe der Quellliste im Voraus nicht kennt, kann sie eine Schätzung vornehmen (z. B. null). Wenn der SourceCount-Parameter nach Abschluss einen größeren Wert enthält, kann der Vorgang mit einem ausreichend großen Puffer wiederholt werden.

Bei der Rückgabe wird der SourceCount-Parameter immer aktualisiert, um die Gesamtanzahl der Quellen im Filter zu sein, während der Puffer, auf den der SourceList-Parameter verweist, so viele Quelladressen wie möglich enthält, bis zum Minimum der Arraygröße, die als ursprünglicher SourceCount-Wert übergeben wird, und der Gesamtzahl der Quellen im Filter.

Diese Funktion ist Teil von Socketschnittstellenerweiterungen für Multicastquellfilter, die in RFC 3678 definiert sind. Eine App kann diese Funktionen verwenden, um die Multicast-Quelladressfilter abzurufen und festzulegen, die einem Socket zugeordnet sind.

Windows Phone 8: Diese Funktion wird für Windows Phone Store-Apps auf Windows Phone 8 und höher unterstützt.

Windows 8.1 und Windows Server 2012 R2: Diese Funktion wird für Windows Store-Apps auf Windows 8.1, Windows Server 2012 R2 und höher unterstützt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1, Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile ws2tcpip.h
Bibliothek Ws2_32.lib
DLL Ws2_32.dll

Weitere Informationen

MULTICAST_MODE_TYPE

SOCKADDR_STORAGE

getipv4sourcefilter

setipv4sourcefilter

setsourcefilter