Función getsourcefilter (ws2tcpip.h)

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

Sintaxis

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

Parámetros

[in] Socket

Descriptor que identifica un socket de multidifusión.

[in] Interface

Índice de interfaz de la interfaz de multidifusión.

[in] Group

Puntero a la dirección de socket del grupo de multidifusión.

[in] GroupLength

Longitud, en bytes, de la dirección de socket a la que apunta el parámetro Group .

[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, getsourcefilter 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.

Comentarios

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

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

Requisito Value
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

SOCKADDR_STORAGE

getipv4sourcefilter

setipv4sourcefilter

setsourcefilter