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) 接口和所有拨号客户端连接的内部接口。
对于广播接口 (,例如以太网接口) 或点到点接口(仅由 dwIfIndex 的值标识),请指定零。
[in] dwFlags
指定添加组成员身份时必须进行的任何其他处理。 有效值是:
值 | 含义 |
---|---|
|
为指定的源和组添加组成员身份。 更新指定源组的任何转发条目,以反映组成员身份中的此更改。 |
|
将指定的接口添加到与指定源和组对应的转发项的传出接口列表中。 |
返回值
如果函数成功,则返回值NO_ERROR。
如果函数失败,则返回值为以下错误代码之一。
值 | 含义 |
---|---|
|
无法完成对此函数的调用。 |
|
协议句柄无效。 |
|
内存不足,无法完成此操作。 |
注解
此版本的 MGM API 仅支持通配符源或特定源,不支持一系列源。 相同的限制适用于组,即不允许任何组范围。
调用此函数时,多播组管理器可能会调用 PMGM_JOIN_ALERT_CALLBACK 回调,以通知其他路由协议指定组有新接收方。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 无受支持的版本 |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | mgm.h |
Library | Rtm.lib |
DLL | Rtm.dll |