PROTOCOL_CL_INCOMING_DROP_PARTY回调函数 (ndis.h)

ProtocolClIncomingDropParty 函数由设置多点连接的面向连接的 NDIS 客户端使用。 此类客户端必须具有 ProtocolClIncomingDropParty 函数。 否则,此类协议驱动程序注册的 ProtocolClIncomingDropParty 函数可以仅返回控制权。

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

语法

PROTOCOL_CL_INCOMING_DROP_PARTY ProtocolClIncomingDropParty;

void ProtocolClIncomingDropParty(
  [in] NDIS_STATUS DropStatus,
  [in] NDIS_HANDLE ProtocolPartyContext,
  [in] PVOID CloseData,
  [in] UINT Size
)
{...}

参数

[in] DropStatus

指示删除该参与方的原因。 通常,如果远程笔记上的参与方启动了关闭其连接,则这是NDIS_STATUS_SUCCESS,但如果调用管理器由于发现网络问题而启动了此放置方操作,则这可能是任何 CM 确定的状态。

[in] ProtocolPartyContext

指定要删除的参与方的客户端每方上下文区域的句柄。 客户端最初在调用 NdisClAddPartyNdisClMakeCall 时向 NDIS 提供此句柄。

[in] CloseData

指向包含特定于协议的关闭消息(可能是调用管理器通过网络接收的远程客户端提供的)的缓冲区的指针,或者此参数可以为 NULL

NDIS_STATUS_SUCCESS DropStatus 时,如果基础网络介质在关闭连接时不支持数据传输,则此参数为 NULL 。 但是,任何特定的调用管理器都可能定义一个结构,以针对由网络上的问题引起的下拉方操作向其客户端传递其他诊断信息。

[in] Size

指定 CloseData 处缓冲区的长度(以字节为单位),如果 CloseData 为 NULL,则为

返回值

备注

调用 ProtocolClIncomingDropParty 表示发生了以下情况之一:

  • 调用管理器已通过网络收到关闭已建立连接的请求,该连接由 NdisPartyHandle 标识,客户端存储在其每方上下文区域中 的 ProtocolPartyContext
  • 呼叫管理器检测到网络问题将阻止在已建立的连接上进一步传输数据。
在任一情况下, ProtocolClIncomingDropParty 都应执行任何协议确定的操作,以便从客户端的多点 VC 中删除参与方。 ProtocolClIncomingDropParty 必须调用 NdisClDropParty ,如果这是客户端多点 VC 上最后剩余的一方, 则调用 NdisClCloseCall

ProtocolClIncomingDropParty 应考虑客户端从 NdisClAddPartyNdisClMakeCall 获取的 NdisPartyHandle 无效。 ProtocolClIncomingDropParty 可以释放客户端的每方上下文区域,也可以准备它在后续调用 NdisClAddParty 中重复使用。

示例

若要定义 ProtocolClIncomingDropParty 函数,必须首先提供一个函数声明来标识要定义的函数类型。 Windows 为驱动程序提供一组函数类型。 使用函数类型声明函数可帮助 驱动程序的代码分析静态驱动程序验证程序 (SDV) 和其他验证工具查找错误,并且这是编写 Windows 操作系统驱动程序的要求。

例如,若要定义名为“ MyClIncomingDropParty”的 ProtocolClIncomingDropParty 函数,请使用 PROTOCOL_CL_INCOMING_DROP_PARTY 类型,如以下代码示例所示:

PROTOCOL_CL_INCOMING_DROP_PARTY MyClIncomingDropParty;

然后,按如下所示实现函数:

_Use_decl_annotations_
VOID
 MyClIncomingDropParty(
    NDIS_STATUS  DropStatus,
    NDIS_HANDLE  ProtocolPartyContext,
    PVOID  CloseData,
    UINT  Size
    )
  {...}

PROTOCOL_CL_INCOMING_DROP_PARTY函数类型在 Ndis.h 头文件中定义。 若要在运行代码分析工具时更准确地识别错误,请务必将 Use_decl_annotations 注释添加到函数定义。 Use_decl_annotations批注可确保使用应用于头文件中PROTOCOL_CL_INCOMING_DROP_PARTY函数类型的注释。 有关函数声明要求的详细信息,请参阅 使用 NDIS 驱动程序的函数角色类型声明函数

有关 Use_decl_annotations的信息,请参阅 批注函数行为

要求

要求
最低受支持的客户端 支持 NDIS 6.0 和 NDIS 5.1 驱动程序 (请参阅 Windows Vista 中的 ProtocolClIncomingDropParty (NDIS 5.1) ) 。 支持 NDIS 5.1 驱动程序 (请参阅 Windows XP 中的 ProtocolClIncomingDropParty (NDIS 5.1) ) 。
目标平台 Windows
标头 ndis.h (包括 Ndis.h)
IRQL <= DISPATCH_LEVEL

另请参阅

NdisClAddParty

NdisClCloseCall

NdisClDropParty

NdisClMakeCall

NdisCmDispatchIncomingDropParty

NdisFreeMemory

NdisFreeToNPagedLookasideList NdisMCmDispatchIncomingDropParty