ProtocolCmIncomingCallComplete 函数是必需的。 当 NDIS 调用此函数时,ProtocolCmIncomingCallComplete 向调用管理器指示,面向连接的客户端已完成调用套餐的处理,而呼叫管理器之前通过该调用管理器调度的传入呼叫套餐 NdisCmDispatchIncomingCall。
语法
PROTOCOL_CM_INCOMING_CALL_COMPLETE ProtocolCmIncomingCallComplete;
VOID ProtocolCmIncomingCallComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE CallMgrVcContext,
[in] PCO_CALL_PARAMETERS CallParameters
)
{...}
参数
[in] Status
指示将传入调用调度到面向连接的客户端的作的最终状态。
[in] CallMgrVcContext
指定调用管理器分配的上下文区域的句柄,其中调用管理器维护其每 VC 状态。 调用管理器从其 ProtocolCoCreateVc 函数中提供了此句柄。
[in] CallParameters
指向调用管理器在调用 NdisCmDispatchIncomingCall中指定的调用参数的指针。 信号协议确定呼叫管理器可以更改哪些调用参数(如果有)。
返回值
没有
言论
当面向连接的客户端已完成调用管理器调度到它的传入连接产品/服务的处理时,如果 NdisCmDispatchIncomingCall 返回NDIS_STATUS_PENDING,将调用此例程。 传入呼叫的最终状态在 状态中找到。 状态 的可能值包括但不限于:
如果客户端接受传入呼叫,则呼叫管理器应发送信号消息,以向调用实体指示呼叫已被接受。 如果客户端不接受呼叫,则呼叫管理器应发送信号消息,以指示呼叫已被拒绝。
示例
若要定义 protocolCmIncomingCallComplete 函数,必须首先提供一个函数声明来标识要定义的函数的类型。 Windows 为驱动程序提供了一组函数类型。 使用函数类型声明函数有助于 驱动程序代码分析、静态驱动程序验证程序(SDV)和其他验证工具查找错误,这是为 Windows作系统编写驱动程序的要求。例如,若要定义名为“MyCmIncomingCallComplete”的 ProtocolCmIncomingCallComplete 函数,请使用 PROTOCOL_CM_INCOMING_CALL_COMPLETE 类型,如以下代码示例所示:
PROTOCOL_CM_INCOMING_CALL_COMPLETE MyCmIncomingCallComplete;
然后,按如下所示实现函数:
_Use_decl_annotations_
VOID
MyCmIncomingCallComplete(
NDIS_STATUS Status,
NDIS_HANDLE CallMgrVcContext,
PCO_CALL_PARAMETERS CallParameters
)
{...}
PROTOCOL_CM_INCOMING_CALL_COMPLETE 函数类型在 Ndis.h 头文件中定义。 若要在运行代码分析工具时更准确地识别错误,请务必将 Use_decl_annotations 注释添加到函数定义。 Use_decl_annotations 批注可确保使用应用于头文件中 PROTOCOL_CM_INCOMING_CALL_COMPLETE 函数类型的批注。 有关函数声明要求的详细信息,请参阅 使用 NDIS 驱动程序的函数角色类型声明函数。
有关 Use_decl_annotations的信息,请参阅 批注函数行为。
要求
| 要求 | 价值 |
|---|---|
| 最低支持的客户端 | Windows Vista 中支持 NDIS 6.0 和 NDIS 5.1 驱动程序(请参阅 ProtocolCmIncomingCallComplete (NDIS 5.1)。 支持 NDIS 5.1 驱动程序(请参阅 Windows XP 中的 ProtocolCmIncomingCallComplete (NDIS 5.1) 。 |
| 目标平台 | 窗户 |
| 标头 | ndis.h (包括 Ndis.h) |
| IRQL | <= DISPATCH_LEVEL |