NdisCoCreateVc 函数 (ndis.h)
NdisCoCreateVc 设置一个连接终结点,客户端可以从该终结点进行传出呼叫,或者独立呼叫管理器可以调度传入呼叫。
语法
NDIS_STATUS NdisCoCreateVc(
[in] NDIS_HANDLE NdisBindingHandle,
[in, optional] NDIS_HANDLE NdisAfHandle,
[in] NDIS_HANDLE ProtocolVcContext,
[in, out] PNDIS_HANDLE NdisVcHandle
);
参数
[in] NdisBindingHandle
指定 NdisOpenAdapterEx 返回的句柄,该句柄标识调用方绑定到的下一个较低驱动程序的目标 NIC 或虚拟适配器。
[in, optional] NdisAfHandle
指定调用方为客户端时 NdisClOpenAddressFamilyEx 返回的句柄。 调用管理器将此参数设置为 NULL,如果它正在为自己创建 VC,例如 VC 到网络交换机。 当它为传入呼叫通知创建 VC 时,呼叫管理器会传递其保存在其按 AF 状态的 AF 句柄,该句柄由 CallMgrAfContext 传递给它的输入参数 ProtocolCmRegisterSap 函数。
[in] ProtocolVcContext
指定调用方提供的驻地上下文区域的句柄,调用方在其中维护此 VC 的状态。 如果调用 NdisCoCreateVc 成功,NDIS 会在有关此终结点的所有后续调用中将此句柄传回 VC 创建者。
[in, out] NdisVcHandle
指向调用方提供的变量的指针,该变量必须在调用 NdisCoCreateVc 时初始化为 NULL。 从成功调用返回时,这指向 NDIS 已设置为新创建的 VC 的句柄的变量。 调用方必须保存此句柄,以便后续调用面向连接的 Ndis Xxx 函数。
返回值
NdisCoCreateVc 可以返回以下项之一:
返回代码 | 描述 |
---|---|
|
NDIS 已成功创建 VC。 |
|
NDIS 无法分配足够的内存来设置 VC。 |
|
给定 NdisAfHandle 无效。 |
|
基础微型端口驱动程序由于微型端口驱动程序确定的原因(NDIS 传播到调用方)而未能创建 VC。 |
言论
客户端或独立调用管理器创建具有 NdisCoCreateVc的 VC,具体取决于 VC 是分别表示传出呼叫还是传入呼叫。
在创建 VC 的过程中,NDIS 向客户端、调用管理器和两个协议驱动程序绑定的微型端口驱动程序提供 NdisVcHandle。 此句柄标识客户端、调用管理器和微型端口驱动程序的虚拟线路,随后会定向到有关给定 VC 的请求。 每个驱动程序必须将此 VC 句柄视为不透明变量,并在后续调用中将其传递给某些面向连接的 NDIS 库函数,并将其传递为未修改和未解释。
通常,NdisCoCreateVc 的调用方 将返回的 NdisVcHandle 存储在调用方分配的状态区域中,ProtocolVcContext。 NDIS 将此句柄作为输入参数传递给 ProtocolCoCreateVc 和 MiniportCoCreateVc 每个创建 VC 所涉及的其他两个驱动程序的函数。
若要进行传出呼叫,客户端必须首先调用 NdisCoCreateVc。 作为同步作,NDIS 调用基础微型端口驱动程序的 MiniportCoCreateVc 函数,并在 NdisCoCreateVc 返回控件之前调用管理器的 ProtocolCoCreateVc 函数。 如果客户端调用 NdisCoCreateVc 成功,客户端可以继续进行传出调用,将返回的 NdisVcHandle 传递给 NdisClMakeCall。
何时 ProtocolCoReceiveNetBufferLists 函数处理定向到其中一个已注册的 SAP 的传入调用的提供,调用管理器必须先调用 NdisCoCreateVc。 作为同步作,NDIS 调用基础微型端口驱动程序的 MiniportCoCreateVc 函数,并在 NdisCoCreateVc 返回控件之前,客户端的 ProtocolCoCreateVc 函数。 如果调用 NdisCoCreateVc 成功,则调用管理器可以继续通知相应的客户端,将返回的值传递给 NdisVcHandle NdisCmDispatchIncomingCall。
独立呼叫管理器,将其注册为协议驱动程序的 NDIS,可以调用 NdisCoCreateVc。 提供集成呼叫管理支持调用 NdisMCmCreateVc的连接型微型端口驱动程序。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista 中支持 NDIS 6.0 和 NDIS 5.1 驱动程序(请参阅 NdisCoCreateVc(NDIS 5.1)。 Windows XP 中支持 NDIS 5.1 驱动程序(请参阅 NdisCoCreateVc (NDIS 5.1)。 |
目标平台 | 桌面 |
标头 | ndis.h (包括 Ndis.h) |
库 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | Irql_Connection_Function(ndis) |