NdisCmActivateVc 函数 (ndis.h)

NdisCmActivateVc 将特定 VC 的 CM 提供的调用参数(包括媒体参数)传递到基础微型端口驱动程序。

语法

NDIS_STATUS NdisCmActivateVc(
  [in]      NDIS_HANDLE         NdisVcHandle,
  [in, out] PCO_CALL_PARAMETERS CallParameters
);

参数

[in] NdisVcHandle

指定标识要对其设置调用参数的 VC 的句柄。 调用管理器从传入调用的 NdisCoCreateVc 获取此句柄,或者作为其 ProtocolCoCreateVc 函数的输入参数,用于客户端发起的传出调用。

[in, out] CallParameters

指向 CM 分配的驻留缓冲区的指针,格式化为类型 CO_CALL_PARAMETERS的结构,其中包含基础微型端口驱动程序用于 VC 激活的所有特定于媒体的参数。

返回值

NdisCmActivateVc 返回除NDIS_STATUS_PENDING以外的任何内容时,调用管理器应对其进行内部调用 ProtocolCmActivateVcComplete 函数。 否则,NDIS 会在完成此作时调用 CM 的 ProtocolCmActivateVcComplete 函数。

言论

NdisCmActivateVc 通知基础微型端口驱动程序在新建的 VC 上设置调用和媒体参数或更改已建立的 VC 的调用和媒体参数。 NDIS 将给定的调用参数和 VC 句柄转发到基础微型端口驱动程序的 MiniportCoActivateVc 函数,该函数设置所有必要的资源来跟踪 VC 的状态,并使自身和 NIC 准备好在 VC 上进行数据传输。

独立 CM 始终在 VC 上建立连接之后、在该 VC 上发送或接收任何数据之前调用 NdisCmActivateVc。 在连接期间,CM 可以多次调用 NdisCmActivateVcNdisVcHandle,因为网络更改和/或客户端调用 NdisClModifyCallQoS。 每次调用 NdisCmActivateVc时,基础微型端口驱动程序的 MiniportCoActivateVc 函数都必须执行以下作之一:

  • 如果微型端口驱动程序可以根据新修改的调用参数继续根据新修改的调用参数继续在 VC 上进行传输,则更新微型端口驱动程序对调用管理器提供的新值进行调用参数的状态。
  • 如果微型端口驱动程序无法在给定调用参数的约束下继续进行传输,则调用失败。
当基础微型端口驱动程序无法设置或重置调用参数的请求时,调用管理器可能会在 CallParameters 修改其原始规范,并再次调用 NdisCmActivateVc。 任何调用管理器重复尝试激活 VC 的次数限制取决于实现。

对于客户端发起的传出呼叫,独立 CM 通常会在数据包交换后立即调用 NdisCmActivateVc 确认与呼叫远程目标的协商协议或在交换机上成功调用设置,然后通知 NDIS(和客户端)通过 NdisCmMakeCallComplete完成传出呼叫。 对于传入呼叫,呼叫管理器通常调用 NdisCmActivateVc 后,它调用 NdisCoCreateVc 成功,并在调用之前调用 NdisCmDispatchIncomingCall

在设置传出呼叫的过程中,客户端可以请求对该 VC 的调用参数进行更改,例如,通过调用 NdisClModifyCallQos。 验证给定调用参数对任何此类请求的有效性后,独立调用管理器必须调用 NdisCmActivateVc,才能将修改后的调用参数向下传递到基础微型端口驱动程序。

只有将自己注册为协议驱动程序的 NDIS 的独立呼叫管理器才能调用 NdisCmActivateVc。 面向连接的微型端口驱动程序,这些驱动程序提供集成的呼叫管理支持呼叫 NdisMCmActivateVc

要求

要求 价值
最低支持的客户端 Windows Vista 中支持 NDIS 6.0 和 NDIS 5.1 驱动程序(请参阅 NdisCmActivateVc(NDIS 5.1)。 Windows XP 中支持 NDIS 5.1 驱动程序(请参阅 NdisCmActivateVc(NDIS 5.1)。
目标平台 桌面
标头 ndis.h (包括 Ndis.h)
Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 Irql_CallManager_Function(ndis)

另请参阅

CO_CALL_PARAMETERS

MiniportCoActivateVc

NdisClMakeCall

NdisClModifyCallQos

NdisCmDeactivateVc

NdisCmDispatchIncomingCall

NdisCoCreateVc

NdisMCmActivateVc

ProtocolCmActivateVcComplete

ProtocolCoCreateVc