Share via


getipv4sourcefilter-Funktion (ws2tcpip.h)

Die Inlinefunktion getipv4sourcefilter ruft den Multicastfilterstatus für einen IPv4-Socket ab.

Syntax

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

Parameter

[in] Socket

Ein Deskriptor, der einen Multicastsocket identifiziert.

[in] Interface

Die lokale IPv4-Adresse der Schnittstelle oder der Schnittstellenindex, in dem die Multicastgruppe verknüpft oder gelöscht werden soll.

Dieser Wert liegt in der Netzwerkbytereihenfolge vor. Wenn dieser Member die IPv4-Adresse 0.0.0.0 angibt, wird die IPv4-Standard-Multicastschnittstelle verwendet.

Jede IP-Adresse im 0.x.x.x-Block (erstes Oktett von 0) mit Ausnahme der IPv4-Adresse 0.0.0.0 wird als Schnittstellenindex behandelt. Ein Schnittstellenindex ist eine 24-Bit-Zahl, und der IPv4-Adressblock 0.0.0.0/8 wird nicht verwendet (dieser Bereich ist reserviert).

Die Verwendung eines Schnittstellenindexes von 1 entspricht der IP-Adresse 0.0.0.1.

[in] Group

Die IPv4-Adresse der Multicastgruppe.

[out] FilterMode

Ein Zeiger auf einen Wert, der den Multicastfiltermodus für die Multicastgruppenadresse empfangen soll, wenn die Funktion zurückgegeben wird.

[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 zum Empfangen der Liste der IP-Adressen, die dem Multicastfilter zugeordnet sind.

Wenn SourceCount bei der Eingabe null ist, kann ein NULL-Zeiger angegeben werden.

Rückgabewert

Bei Erfolg gibt getipv4sourcefilter NO_ERROR (0) zurück. Jeder Rückgabewert ungleich null 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 getipv4sourcefilter wird verwendet, um den Multicastfilterstatus für einen IPv4-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 der Socketschnittstellenerweiterungen für Multicastquellenfilter, 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 ab Windows Phone 8 unterstützt.

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

Anforderungen

   
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

getsourcefilter

in_addr

setipv4sourcefilter

setsourcefilter