Функция 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.
Код ошибки | Значение |
---|---|
Недостаточно места в буфере. | |
Дескриптор не является сокетом. |
Комментарии
Встроенная функция 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 |