PROTOCOL_CM_DROP_PARTY回调函数 (ndis.h)

ProtocolCmDropParty 函数是必需的。 NDIS 调用 ProtocolCmDropParty 以请求呼叫管理器从现有多点调用中删除参与方。

注意 必须使用 PROTOCOL_CM_DROP_PARTY 类型声明函数。 有关详细信息,请参阅以下示例部分。
 

语法

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 将 () 的操作状态作为以下值之一返回:

返回代码 说明
NDIS_STATUS_SUCCESS
指示调用管理器已成功删除该参与方、发送任何关闭的数据,并释放为其上下文区域分配的资源。
NDIS_STATUS_PENDING
指示调用管理器将完成异步删除参与方的请求。 在完成所有处理后,调用管理器必须调用 NdisCmDropPartyComplete ,以通知 NDIS 和请求执行组件已放弃该参与方。
NDIS_STATUS_INVALID_DATA
指示已向调用管理器指定 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

另请参阅

NdisCmDropPartyComplete

ProtocolCmAddParty