Поделиться через


Функция getsourcefilter (ws2tcpip.h)

Встроенная функция getsourcefilter извлекает состояние фильтра многоадресной рассылки для сокета IPv4 или IPv6.

Синтаксис

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

Параметры

[in] Socket

Дескриптор, определяющий сокет многоадресной рассылки.

[in] Interface

Индекс интерфейса многоадресной рассылки.

[in] Group

Указатель на адрес сокета группы многоадресной рассылки.

[in] GroupLength

Длина (в байтах) адреса сокета, на который указывает параметр Group .

[out] FilterMode

Указатель на значение для получения режима фильтра многоадресной рассылки для адреса группы многоадресной рассылки при возврате функции.

[in, out] SourceCount

Во входных данных — указатель на значение, указывающее максимальное количество исходных адресов, которые будут помещаться в буфер, на который указывает параметр SourceList .

В выходных данных — указатель на значение, указывающее общее количество исходных адресов, связанных с фильтром многоадресной рассылки.

[out] SourceList

Указатель на буфер для получения списка IP-адресов, связанных с фильтром многоадресной рассылки.

Если значение SourceCount равно нулю при входе, можно указать указатель NULL .

Возвращаемое значение

При успешном выполнении getsourcefilter возвращает NO_ERROR (0). Любое ненулевое возвращаемое значение указывает на сбой, и конкретный код ошибки можно получить, вызвав WSAGetLastError.

Код ошибки Значение
WSAENOBUFS
Недостаточно места в буфере.
WSAENOTSOCK
Дескриптор не является сокетом.

Комментарии

Встроенная функция getsourcefilter используется для получения состояния фильтра многоадресной рассылки для сокета IPv4 или IPv6.

Если приложение не знает размер исходного списка заранее, оно может сделать предположение (например, ноль). Если после завершения параметр SourceCount содержит большее значение, операцию можно повторить с достаточно большим буфером.

При возврате параметр SourceCount всегда обновляется до общего числа источников в фильтре, в то время как буфер, на который указывает параметр SourceList , будет содержать столько исходных адресов, сколько подходит, вплоть до минимального размера массива, передаваемого в качестве исходного значения SourceCount , и общего числа источников в фильтре.

Эта функция является частью расширений интерфейса сокета для фильтров источников многоадресной рассылки, определенных в RFC 3678. Приложение может использовать эти функции для получения и настройки фильтров адресов источника многоадресной рассылки, связанных с сокетом.

Windows Phone 8. Эта функция поддерживается для приложений Магазина Windows Phone Windows Phone 8 и более поздних версий.

Windows 8.1 и Windows Server 2012 R2. Эта функция поддерживается для приложений Магазина Windows в Windows 8.1, Windows Server 2012 R2 и более поздних версий.

Требования

Требование Значение
Минимальная версия клиента Windows 8.1, Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header ws2tcpip.h
Библиотека Ws2_32.lib
DLL Ws2_32.dll

См. также раздел

MULTICAST_MODE_TYPE

SOCKADDR_STORAGE

getipv4sourcefilter

setipv4sourcefilter

setsourcefilter