Condividi tramite


funzione getipv4sourcefilter (ws2tcpip.h)

La funzione inline getipv4sourcefilter recupera lo stato del filtro multicast per un socket IPv4.

Sintassi

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

Parametri

[in] Socket

Descrittore che identifica un socket multicast.

[in] Interface

Indirizzo IPv4 locale dell'interfaccia o dell'indice dell'interfaccia in cui deve essere aggiunto o eliminato il gruppo multicast.

Questo valore è in ordine di byte di rete. Se questo membro specifica un indirizzo IPv4 pari a 0.0.0.0,0, viene usata l'interfaccia multicast IPv4 predefinita.

Qualsiasi indirizzo IP nel blocco 0.x.x.x (primo ottetto di 0) tranne l'indirizzo IPv4 0.0.0.0.0 viene considerato come indice di interfaccia. Un indice di interfaccia è un numero a 24 bit e il blocco indirizzi IPv4 0.0.0.0/8 non viene usato (questo intervallo è riservato).

Per usare un indice di interfaccia pari a 1 sarebbe uguale a un indirizzo IP pari a 0.0.0.1.

[in] Group

Indirizzo IPv4 del gruppo multicast.

[out] FilterMode

Puntatore a un valore per ricevere la modalità filtro multicast per l'indirizzo del gruppo multicast quando la funzione restituisce.

[in, out] SourceCount

In input, un puntatore a un valore che indica il numero massimo di indirizzi di origine che si adattano al buffer a cui fa riferimento il parametro SourceList .

In output, un puntatore a un valore che indica il numero totale di indirizzi di origine associati al filtro multicast.

[out] SourceList

Puntatore a un buffer per ricevere l'elenco di indirizzi IP associati al filtro multicast.

Se SourceCount è zero in input, è possibile specificare un puntatore NULL .

Valore restituito

In caso di esito positivo, getipv4sourcefilter restituisce NO_ERROR (0). Qualsiasi valore restituito diverso da zero indica l'errore e un codice di errore specifico può essere recuperato chiamando WSAGetLastError.

Codice di errore Significato
WSAENOBUFS
Spazio buffer insufficiente disponibile.
WSAENOTSOCK
Il descrittore non è un socket.

Commenti

La funzione inline getipv4sourcefilter viene usata per recuperare lo stato del filtro multicast per un socket IPv4.

Se l'app non conosce le dimensioni dell'elenco di origine in anticipo, può indovinare (ad esempio zero). Se al termine, il parametro SourceCount contiene un valore maggiore, l'operazione può essere ripetuta con un buffer sufficiente.

In caso di ritorno, il parametro SourceCount viene sempre aggiornato per essere il numero totale di origini nel filtro, mentre il buffer a cui punta il parametro SourceList conterrà il numero massimo di indirizzi di origine adatti, fino al minimo delle dimensioni della matrice passate come valore sourceCount originale e il numero totale di origini nel filtro.

Questa funzione fa parte delle estensioni dell'interfaccia socket per i filtri di origine multicast definiti in RFC 3678. Un'app può usare queste funzioni per recuperare e impostare i filtri degli indirizzi di origine multicast associati a un socket.

Windows Phone 8: questa funzione è supportata per le app Windows Phone Store in Windows Phone 8 e versioni successive.

Windows 8.1 e Windows Server 2012 R2: questa funzione è supportata per le app di Windows Store in Windows 8.1, Windows Server 2012 R2 e versioni successive.

Requisiti

   
Client minimo supportato Windows 8.1, Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione ws2tcpip.h
Libreria Ws2_32.lib
DLL Ws2_32.dll

Vedi anche

MULTICAST_MODE_TYPE

getsourcefilter

in_addr

setipv4sourcefilter

setsourcefilter