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 指定的句柄,以便在将来的调用中引用。 在调用管理器分配并完成其每方状态区域的初始化后,状态缓冲区的地址应设置为 CallMgrPartyContext 句柄,然后再将控制权返回到 NDIS。 为此,请取消引用句柄,并将指向状态缓冲区的指针存储为句柄的值。 例如:
*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的信息,请参阅 批注函数行为。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista 中支持 NDIS 6.0 和 NDIS 5.1 驱动程序(请参阅 ProtocolCmAddParty(NDIS 5.1)。 在 Windows XP 中支持 NDIS 5.1 驱动程序(请参阅 ProtocolCmAddParty (NDIS 5.1)。 |
目标平台 | 窗户 |
标头 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |