mgmDeleteGroupMembershipEntry 函数 (mgm.h)

MgmDeleteGroupMembershipEntry 函数通知多播组管理器,指定接口上的指定组不再存在接收方。

多播路由协议在通知接口上没有多播组的接收方后调用此函数。 协议必须调用此函数,以阻止通过接口转发多播数据。

语法

DWORD MgmDeleteGroupMembershipEntry(
  [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_FOUND
找不到指定的接口。
 
 

注解

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

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

要求

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

另请参阅

MgmAddGroupMembershipEntry

PMGM_PRUNE_ALERT_CALLBACK