PROTOCOL_CM_DROP_PARTY回调函数 (ndis.h)
ProtocolCmDropParty 函数是必需的。 NDIS 调用 ProtocolCmDropParty 以请求呼叫管理器从现有多点调用中删除参与方。
语法
PROTOCOL_CM_DROP_PARTY ProtocolCmDropParty;
NDIS_STATUS ProtocolCmDropParty(
[in] NDIS_HANDLE CallMgrPartyContext,
[in, optional] PVOID CloseData,
[in, optional] UINT Size
)
{...}
参数
[in] CallMgrPartyContext
指定调用管理器分配的上下文区域的句柄,调用管理器在其中维护其每方状态。 此句柄在调用管理器 ProtocolCmAddParty 函数中提供给 NDIS。
[in, optional] CloseData
指向缓冲区的指针,该缓冲区包含面向连接的客户端特定数据,该数据应在删除该参与方之前通过连接发送。 如果基础网络介质在关闭连接时不支持数据传输,则此参数为 NULL 。
[in, optional] Size
指定 CloseData 处缓冲区的长度(以字节为单位),如果 CloseData 为 NULL,则为 零。
返回值
ProtocolCmDropParty 将 () 的操作状态作为以下值之一返回:
返回代码 | 说明 |
---|---|
|
指示调用管理器已成功删除该参与方、发送任何关闭的数据,并释放为其上下文区域分配的资源。 |
|
指示调用管理器将完成异步删除参与方的请求。 在完成所有处理后,调用管理器必须调用 NdisCmDropPartyComplete ,以通知 NDIS 和请求执行组件已放弃该参与方。 |
|
指示已向调用管理器指定 CloseData ,但媒体类型不支持同时发送与连接终止相关的数据。 |
注解
ProtocolCmDropParty 与网络控制设备或其他特定于媒体的代理通信(如果媒体需要),以从现有多点调用中删除一方。 如果需要呼叫管理器与网络控制代理通信, (例如,网络交换机) 它应使用虚拟连接来连接到在其中建立的网络控制代理 ProtocolBindAdapterEx 函数。
如果 CloseData 为非 NULL ,并且其媒体类型支持在连接终止时发送数据,则调用管理器应在完成终止之前传输 CloseData 中指定的数据。 如果媒体类型不支持并发发送与连接终止的数据,则调用管理器应使用NDIS_STATUS_INVALID_DATA返回控制权。
调用管理器还必须释放它在 CallMgrPartyContext 中分配和存储的任何每方资源。 此外,调用管理器必须释放缓冲区存储的 CallMgrPartyContext 本身。 否则将导致内存泄漏情况。
示例
若要定义 ProtocolCmDropParty 函数,必须首先提供一个函数声明,用于标识要定义的函数类型。 Windows 为驱动程序提供一组函数类型。 使用函数类型声明函数可帮助 驱动程序的代码分析、 静态驱动程序验证程序 (SDV) 和其他验证工具查找错误,并且这是编写 Windows 操作系统驱动程序的要求。例如,若要定义名为“ MyCmDropParty”的 ProtocolCmDropParty 函数,请使用 PROTOCOL_CM_DROP_PARTY 类型,如以下代码示例所示:
PROTOCOL_CM_DROP_PARTY MyCmDropParty;
然后,按如下所示实现函数:
_Use_decl_annotations_
NDIS_STATUS
MyCmDropParty(
NDIS_HANDLE CallMgrPartyContext,
PVOID CloseData,
UINT Size
)
{...}
PROTOCOL_CM_DROP_PARTY函数类型在 Ndis.h 头文件中定义。 若要在运行代码分析工具时更准确地识别错误,请务必将 Use_decl_annotations 注释添加到函数定义。 Use_decl_annotations批注可确保使用应用于头文件中PROTOCOL_CM_DROP_PARTY函数类型的注释。 有关函数声明要求的详细信息,请参阅 使用 NDIS 驱动程序的函数角色类型声明函数。
有关 Use_decl_annotations的信息,请参阅 批注函数行为。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | NDIS 6.0 和 NDIS 5.1 驱动程序支持 (请参阅 Windows Vista 中的 ProtocolCmDropParty (NDIS 5.1) ) 。 NDIS 5.1 驱动程序支持 (请参阅 Windows XP 中的 ProtocolCmDropParty (NDIS 5.1) ) 。 |
目标平台 | Windows |
标头 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |