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

DropStatus NDIS_STATUS_SUCCESS时,如果基础网络介质不支持在关闭连接时传输数据,则此参数为 NULL 。 但是,任何特定的调用管理器都可能定义一个结构,用于在网络上出现问题时将其他诊断信息传递给客户端。

[in] Size

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

返回值

备注

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

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

ProtocolClIncomingDropParty 应考虑客户端从 NdisClAddPartyNdisClMakeCall 获取的 NdisPartyHandleProtocolClIncomingDropParty 可以释放客户端的每方上下文区域,或准备在对 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