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 对应的子网掩码。 dwSourceAddrdwSourceMask 参数一起使用,用于定义从中接收多播数据的源范围。

如果为 dwSourceAddr 指定了零,则为此参数指定零, (通配符接收器) 。

[in] dwGroupAddr

指定要接收其数据的多播组。 指定零以接收通配符接收器 () 的所有组;否则,请指定组的 IP 地址。

若要指定组地址范围,请使用 dwGroupAddr 指定组地址,并使用 dwGroupMask 指定子网掩码。

[in] dwGroupMask

指定对应于 dwGroupAddr 的子网掩码。 dwGroupAddrdwGroupMask 参数一起使用来定义一系列多播组。

如果为 dwGroupAddr (通配符接收器) 指定零,则为此参数指定零。

[in] dwIfIndex

指定要添加组成员身份的接口。 指定组的多播数据将通过此接口转发。

[in] dwIfNextHopIPAddr

指定与 dwIfIndex 指定的索引相对应的下一跃点的地址。 dwIfIndexdwIfNextHopIPAddr 参数唯一标识点到多点接口上的下一跃点。 点到多点接口是一个接口连接到多个网络的连接。 点到多点接口的示例包括非广播多访问 (NBMA) 接口和所有拨号客户端连接的内部接口。

对于广播接口 (,例如以太网接口) 或点到点接口(仅由 dwIfIndex 的值标识),请指定零。

[in] dwFlags

指定添加组成员身份时必须进行的任何其他处理。 有效值是:

含义
MGM_JOIN_STATE_FLAG
为指定的源和组添加组成员身份。 更新指定源组的任何转发条目,以反映组成员身份中的此更改。
MGM_FORWARD_STATE
将指定的接口添加到与指定源和组对应的转发项的传出接口列表中。

返回值

如果函数成功,则返回值NO_ERROR。

如果函数失败,则返回值为以下错误代码之一。

含义
ERROR_CAN_NOT_COMPLETE
无法完成对此函数的调用。
ERROR_INVALID_PARAMETER
协议句柄无效。
ERROR_NOT_ENOUGH_MEMORY
内存不足,无法完成此操作。
 
 

注解

此版本的 MGM API 仅支持通配符源或特定源,不支持一系列源。 相同的限制适用于组,即不允许任何组范围。

调用此函数时,多播组管理器可能会调用 PMGM_JOIN_ALERT_CALLBACK 回调,以通知其他路由协议指定组有新接收方。

要求

要求
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 mgm.h
Library Rtm.lib
DLL Rtm.dll

另请参阅

MgmDeleteGroupMembershipEntry

PMGM_JOIN_ALERT_CALLBACK