PMGM_JOIN_ALERT_CALLBACK回调函数 (mgm.h)

PMGM_JOIN_ALERT_CALLBACK回调是调用路由协议,以通知协议,其他路由协议拥有的接口上的一个或多个组存在新接收器。 路由协议收到此回调后,应开始转发指定源和组的多播数据。

语法

PMGM_JOIN_ALERT_CALLBACK PmgmJoinAlertCallback;

DWORD PmgmJoinAlertCallback(
  [in] DWORD dwSourceAddr,
  [in] DWORD dwSourceMask,
  [in] DWORD dwGroupAddr,
  [in] DWORD dwGroupMask,
  [in] BOOL bMemberUpdate
)
{...}

参数

[in] dwSourceAddr

指定从中接收多播数据的源地址。 零表示从组) 的所有源 (通配符接收器接收数据;否则, dwSourceAddr 的值是源或源网络的 IP 地址。

若要指定源地址的范围,多播组管理器使用 dwSourceAddr 指定源网络,并使用 dwSourceMask 指定子网掩码。

[in] dwSourceMask

指定与 dwSourceAddr 对应的子网掩码。 dwSourceAddrdwSourceMask 参数一起使用,用于定义从中接收多播数据的源范围。

如果多播组管理器也为 dwSourceAddr 指定了零, (通配符接收器) ,则多播组管理器为此参数指定零。

[in] dwGroupAddr

指定数据目标为的多播组。 零表示 (通配符接收器) 接收所有组;否则, dwGroupAddr 的值是组的 IP 地址。

若要指定组地址范围,多播组管理器使用 dwGroupAddr 指定组地址,并使用 dwGroupMask 指定子网掩码。

[in] dwGroupMask

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

如果多播组管理器也为 dwGroupAddr 指定了零, (通配符接收器) ,则多播组管理器为此参数指定零。

[in] bMemberUpdate

指定调用回调是因为客户端调用 MgmAddGroupMembershipEntry (多播组管理器将此参数设置为 TRUE) ,还是因为多播组管理器将此参数设置为 FALSE) (创建或更新 MFE。

返回值

RRAS 不希望应用程序返回任何特定值;RRAS 将忽略返回的任何值。

注解

多播组管理器将 bMemberUpdate 参数设置为 TRUE,如果客户端为 (s、g) 、 (、g) 或 (、*) 项 (调用 MgmAddGroupMembershipEntry 函数,则调用此回调,即组成员身份已) 更改。

如果 MFE 的传出接口列表发生更改,多播组管理器会将 bMemberUpdate 参数设置为 FALSE 。 此更改通常发生在与 MFE 对应的组的成员身份更改时。

多播路由协议可以使用 bMemberUpdate 参数来区分对组成员身份的更改和对 MFE 的更改。

当收到此回调时,路由协议采取的操作是特定于协议的。 如果 bMemberUpdate 参数设置为 FALSE,如果协议规范指示这是正确的行为,则协议可能会忽略回调。

调用 MgmAddGroupMembershipEntry 时,多播组管理器使用此回调通知其他多播组管理器客户端指定源和组存在接收方。

多播组管理器使用以下规则来确定何时为通配符 (*、g) 联接调用此回调:

  • 如果这是第一个通知多播组管理器组接口上存在接收方的客户端,则多播组管理器将调用对所有其他已注册客户端 的PMGM_JOIN_ALERT_CALLBACK 回调。
  • 如果这是第二个通知多播组管理器组接口上存在接收方的客户端,则多播组管理器将调用此回调以加入组的第一个客户端。
多播组管理器不会对组的任何后续联接调用此回调。

多播组管理器使用以下规则来确定何时为特定于源的 (s、g) 联接调用此回调:

  • 如果这是第一个通知多播组管理器源和组的接口上存在接收器的客户端,则多播组管理器仅为拥有源“s”的传入接口的客户端调用 PMGM_JOIN_ALERT_CALLBACK 回调。
此版本的多播组管理器 API 仅支持通配符源 (*、g) 或特定源 (s、g) ,不支持一系列源。 相同的限制适用于组 (即,不允许) 组范围。

要求

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