Función getipv4sourcefilter (ws2tcpip.h)

La función insertada getipv4sourcefilter recupera el estado del filtro de multidifusión para un socket IPv4.

Sintaxis

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

Parámetros

[in] Socket

Descriptor que identifica un socket de multidifusión.

[in] Interface

La dirección IPv4 local de la interfaz o el índice de interfaz en el que se debe unir o quitar el grupo de multidifusión.

Este valor está en orden de bytes de red. Si este miembro especifica una dirección IPv4 de 0.0.0.0, se usa la interfaz de multidifusión IPv4 predeterminada.

Cualquier dirección IP del bloque 0.x.x.x (primer octeto de 0), excepto la dirección IPv4 0.0.0.0, se trata como un índice de interfaz. Un índice de interfaz es un número de 24 bits y no se usa el bloque de direcciones IPv4 0.0.0.0/8 (este intervalo está reservado).

Para usar un índice de interfaz de 1 sería el mismo que una dirección IP de 0.0.0.1.

[in] Group

Dirección IPv4 del grupo de multidifusión.

[out] FilterMode

Puntero a un valor para recibir el modo de filtro de multidifusión para la dirección del grupo de multidifusión cuando la función devuelve.

[in, out] SourceCount

En la entrada, un puntero a un valor que indica el número máximo de direcciones de origen que caben en el búfer al que apunta el parámetro SourceList .

En la salida, un puntero a un valor que indica el número total de direcciones de origen asociadas al filtro de multidifusión.

[out] SourceList

Puntero a un búfer para recibir la lista de direcciones IP asociadas al filtro de multidifusión.

Si SourceCount es cero en la entrada, se puede proporcionar un puntero NULL .

Valor devuelto

Si se ejecuta correctamente, getipv4sourcefilter devuelve NO_ERROR (0). Cualquier valor devuelto distinto de cero indica un error y se puede recuperar un código de error específico llamando a WSAGetLastError.

Código de error Significado
WSAENOBUFS
No hay suficiente espacio en búfer disponible.
WSAENOTSOCK
El descriptor no es un socket.

Observaciones

La función insertada getipv4sourcefilter se usa para recuperar el estado del filtro de multidifusión para un socket IPv4.

Si la aplicación no conoce el tamaño de la lista de origen de antemano, puede realizar una estimación (por ejemplo, cero). Si se completa, el parámetro SourceCount contiene un valor mayor, la operación se puede repetir con un búfer lo suficientemente grande.

A la devolución, el parámetro SourceCount siempre se actualiza para que sea el número total de orígenes del filtro, mientras que el búfer al que apunta el parámetro SourceList contendrá tantas direcciones de origen como quepan, hasta el mínimo del tamaño de la matriz pasado como el valor sourceCount original y el número total de orígenes del filtro.

Esta función forma parte de las extensiones de interfaz de socket para los filtros de origen de multidifusión definidos en RFC 3678. Una aplicación puede usar estas funciones para recuperar y establecer los filtros de dirección de origen de multidifusión asociados a un socket.

Windows Phone 8: esta función es compatible con las aplicaciones de Windows Phone Store en Windows Phone 8 y versiones posteriores.

Windows 8.1 y Windows Server 2012 R2: esta función es compatible con las aplicaciones de la Tienda Windows en Windows 8.1, Windows Server 2012 R2 y versiones posteriores.

Requisitos

   
Cliente mínimo compatible Windows 8.1, Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado ws2tcpip.h
Library Ws2_32.lib
Archivo DLL Ws2_32.dll

Consulte también

MULTICAST_MODE_TYPE

getsourcefilter

in_addr

setipv4sourcefilter

setsourcefilter