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


Функция MgmAddGroupMembershipEntry (mgm.h)

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

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

Синтаксис

DWORD MgmAddGroupMembershipEntry(
  [in] HANDLE hProtocol,
  [in] DWORD  dwSourceAddr,
  [in] DWORD  dwSourceMask,
  [in] DWORD  dwGroupAddr,
  [in] DWORD  dwGroupMask,
  [in] DWORD  dwIfIndex,
  [in] DWORD  dwIfNextHopIPAddr,
  [in] DWORD  dwFlags
);

Параметры

[in] hProtocol

Обработка протокола, полученного при предыдущем вызове MgmRegisterMProtocol.

[in] dwSourceAddr

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

Чтобы указать диапазон исходных адресов, укажите исходную сеть с помощью dwSourceAddr и маску подсети с помощью dwSourceMask.

[in] dwSourceMask

Указывает маску подсети, соответствующую dwSourceAddr. Параметры dwSourceAddr и dwSourceMask используются вместе для определения диапазона источников, из которых следует получать данные многоадресной рассылки.

Укажите ноль для этого параметра, если для dwSourceAddr (приемника с подстановочными знаками) был указан ноль.

[in] dwGroupAddr

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

Чтобы указать диапазон адресов группы, укажите адрес группы с помощью dwGroupAddr и маску подсети с помощью dwGroupMask.

[in] dwGroupMask

Указывает маску подсети, соответствующую dwGroupAddr. Параметры dwGroupAddr и dwGroupMask используются вместе для определения диапазона групп многоадресной рассылки.

Укажите ноль для этого параметра, если для dwGroupAddr (приемник с подстановочными знаками) был указан ноль.

[in] dwIfIndex

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

[in] dwIfNextHopIPAddr

Указывает адрес следующего прыжка, соответствующий индексу, заданному dwIfIndex. Параметры dwIfIndex и dwIfNextHopIPAddr однозначно определяют следующий прыжок в интерфейсах типа "точка — многоточечная". Интерфейс типа "точка — многоточечная" — это подключение, в котором один интерфейс подключается к нескольким сетям. Примеры интерфейсов типа "точка — многоточечная" включают не широковещательные интерфейсы с множественным доступом (NBMA) и внутренний интерфейс, с помощью которого подключаются все клиенты удаленного доступа.

Для широковещательных интерфейсов (таких как интерфейсы Ethernet) или интерфейсов типа "точка — точка", которые идентифицируются только значением dwIfIndex, укажите ноль.

[in] dwFlags

Указывает любую дополнительную обработку, которая должна выполняться при добавлении членства в группе. Допустимые значения:

Значение Значение
MGM_JOIN_STATE_FLAG
Добавьте членство в группе для указанного источника и группы. Обновите все записи пересылки для указанной исходной группы, чтобы отразить это изменение в членстве в группе.
MGM_FORWARD_STATE
Добавьте указанный интерфейс в список исходящих интерфейсов для записи пересылки, соответствующей указанному источнику и группе.

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

Если функция выполнена успешно, возвращаемое значение будет NO_ERROR.

Если функция завершается сбоем, возвращается один из следующих кодов ошибок.

Значение Значение
ERROR_CAN_NOT_COMPLETE
Не удалось завершить вызов этой функции.
ERROR_INVALID_PARAMETER
Недопустимый дескриптор протокола.
ERROR_NOT_ENOUGH_MEMORY
Недостаточно памяти для выполнения этой операции.
 
 

Комментарии

Эта версия API MGM поддерживает только источники с подстановочными знаками или определенные источники, а не диапазон источников. Такое же ограничение применяется к группам, то есть диапазоны групп не допускаются.

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

Требования

Требование Значение
Минимальная версия клиента Ни одна версия не поддерживается
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header mgm.h
Библиотека Rtm.lib
DLL Rtm.dll

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

MgmDeleteGroupMembershipEntry

PMGM_JOIN_ALERT_CALLBACK