mgmRegisterMProtocol 函数 (mgm.h)

客户端使用 MgmRegisterMProtocol 函数向多播组管理器注册。 注册完成后,多播组管理器会向客户端返回句柄。 客户端必须在后续的 MGM 函数调用中提供此句柄。

语法

DWORD MgmRegisterMProtocol(
  [in]  PROUTING_PROTOCOL_CONFIG prpiInfo,
  [in]  DWORD                    dwProtocolId,
  [in]  DWORD                    dwComponentId,
  [out] HANDLE                   *phProtocol
);

参数

[in] prpiInfo

指向 ROUTING_PROTOCOL_CONFIG 结构的指针,该结构包含指向客户端回调的指针。

[in] dwProtocolId

指定客户端的 ID。 每个客户端的 ID 都是唯一的。

[in] dwComponentId

指定客户端的特定实例的组件 ID。 此参数与 dwProtocolId 一起使用,以唯一标识客户端的实例。

[out] phProtocol

在输入时,客户端必须提供指向句柄的指针。

输出时, phProtocol 接收客户端的注册句柄。 此句柄必须用于对多播组管理器的后续调用。

返回值

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

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

含义
ERROR_ALREADY_EXISTS
无法注册指定的客户端,因为已存在具有相同协议 ID 和组件 ID 的条目。
ERROR_CAN_NOT_COMPLETE
无法完成对此函数的调用。
ERROR_NOT_ENOUGH_MEMORY
内存不足,无法完成此操作。
 
 

注解

注册协议是任何多播路由协议应执行的第一个操作。 注册后,路由协议应在添加或删除组成员身份之前获取相应接口的所有权。

在任何给定时间,只有一个路由协议可以获取接口的所有权。 多个路由协议可以注册到多播组管理器,每个协议拥有不同的接口。

要求

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

另请参阅

MgmDeRegisterMProtocol

MgmTakeInterfaceOwnership

ROUTING_PROTOCOL_CONFIG