PROTOCOL_CM_ADD_PARTY回调函数 (ndis.h)
ProtocolCmAddParty 函数是必需函数。 ProtocolCmAddParty 设置特定于媒体的参数,以将一方添加到现有的多点调用,存储新参与方的状态数据,并使该参与方添加到呼叫中。
语法
PROTOCOL_CM_ADD_PARTY ProtocolCmAddParty;
NDIS_STATUS ProtocolCmAddParty(
[in] NDIS_HANDLE CallMgrVcContext,
[in, out] PCO_CALL_PARAMETERS CallParameters,
[in] NDIS_HANDLE NdisPartyHandle,
[out] PNDIS_HANDLE CallMgrPartyContext
)
{...}
参数
[in] CallMgrVcContext
指定调用管理器分配的上下文区域的句柄,调用管理器在其中维护其每 VC 状态。 调用管理器从其 ProtocolCoCreateVc 函数向 NDIS 提供了此句柄。
[in, out] CallParameters
指向 CO_CALL_PARAMETERS 结构的指针,该结构包含由面向连接的客户端为要添加到现有调用的参与方指定的参数。
[in] NdisPartyHandle
指定由 NDIS 提供的句柄,该句柄唯一标识要添加到现有虚拟连接的多点方。 此句柄对调用管理器不透明,并保留供 NDIS 库使用。
[out] CallMgrPartyContext
指定返回时,调用管理器提供的上下文区域的句柄,调用管理器在其中维护多点调用的此方的状态。
返回值
ProtocolCmAddParty 将 () 的操作状态返回为下列值之一:
返回代码 | 说明 |
---|---|
|
指示调用管理器已成功分配必要的资源来维护有关该参与方的状态,并成功将参与方添加到呼叫中。 |
|
指示调用管理器将完成异步添加参与方的请求。 当调用管理器已完成添加参与方的所有操作后,它必须调用 NdisCmAddPartyComplete 以向 NDIS 表明此操作已完成。 |
|
指示调用管理器无法分配和/或初始化其资源以将一方添加到连接。 |
|
指示呼叫管理器无法将参与方添加到多点调用,因为调用方在 CallParameters 的调用参数中请求了无效或不可用的功能,或者此调用管理器支持的媒体类型不支持多点调用。 |
注解
ProtocolCmAddParty 执行任何必需的动态资源和结构的分配,调用管理器需要这些资源以及结构来维护由 NdisPartyHandle 指定的参与方的状态信息,以添加到多点调用。 此类资源可能包括但不限于内存缓冲区、数据结构、事件和其他类似资源。 调用管理器还应初始化此函数中相关的每方结构。
在调用管理器分配的每方状态区域中,调用管理器 必须 存储 NdisPartyHandle 指定的句柄,以便在将来的调用中引用。 在调用管理器分配并完成其每方状态区域的初始化后,应在将控制权返回到 NDIS 之前,将状态缓冲区的地址设置为 CallMgrPartyContext 句柄。 为此,请取消引用句柄,并将指向状态缓冲区的指针存储为句柄的值。 例如:
*CallMgrPartyContext = SomeBuffer;
如有必要,呼叫经理会与其网络硬件或其他特定于媒体的执行组件执行任何必要的通信,以便将 CallParameters 中的调用参数指定的参与方添加到现有多点呼叫。
示例
若要定义 ProtocolCmAddParty 函数,必须先提供一个函数声明,用于标识要定义的函数类型。 Windows 为驱动程序提供了一组函数类型。 使用函数类型声明函数可帮助 驱动程序的代码分析、 静态驱动程序验证程序 (SDV) 和其他验证工具查找错误,并且这是为 Windows 操作系统编写驱动程序的要求。例如,若要定义名为“ MyCmAddParty ”的 ProtocolCmAddParty 函数,请使用 PROTOCOL_CM_ADD_PARTY 类型,如以下代码示例所示:
MINIPORT_ADD_DEVICE MyCmAddParty;
然后,按如下所示实现函数:
_Use_decl_annotations_
NDIS_STATUS
MyCmAddParty(
NDIS_HANDLE CallMgrVcContext,
PCO_CALL_PARAMETERS CallParameters,
NDIS_HANDLE NdisPartyHandle,
PNDIS_HANDLE CallMgrPartyContext
)
{...}
PROTOCOL_CM_ADD_PARTY函数类型在 Ndis.h 头文件中定义。 若要在运行代码分析工具时更准确地识别错误,请务必将 Use_decl_annotations 注释添加到函数定义。 Use_decl_annotations批注可确保使用应用于头文件中PROTOCOL_CM_ADD_PARTY函数类型的注释。 有关函数声明要求的详细信息,请参阅 使用 NDIS 驱动程序的函数角色类型声明函数。
有关 Use_decl_annotations的信息,请参阅 批注函数行为。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | NDIS 6.0 和 NDIS 5.1 驱动程序支持 (请参阅 Windows Vista 中的 ProtocolCmAddParty (NDIS 5.1) ) 。 NDIS 5.1 驱动程序支持 (请参阅 Windows XP 中的 ProtocolCmAddParty (NDIS 5.1) ) 。 |
目标平台 | Windows |
标头 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |