PROTOCOL_CM_MODIFY_QOS_CALL回调函数 (ndis.h)
需要 ProtocolCmModifyCallQoS 函数。 当面向连接的客户端请求更改现有虚拟连接(VC)的调用参数时,NDIS 会调用 ProtocolCmModifyCallQoS。 如果基础网络媒体不支持 QoS,ProtocolCmModifyQoS 应仅返回NDIS_STATUS_NOT_SUPPORTED。
语法
PROTOCOL_CM_MODIFY_QOS_CALL ProtocolCmModifyQosCall;
NDIS_STATUS ProtocolCmModifyQosCall(
[in] NDIS_HANDLE CallMgrVcContext,
[in] PCO_CALL_PARAMETERS CallParameters
)
{...}
参数
[in] CallMgrVcContext
指定调用管理器分配的上下文区域的句柄,其中调用管理器维护其每 VC 状态。 调用管理器为其 ProtocolCoCreateVc 函数向 NDIS 提供了此句柄。
[in] CallParameters
指向一个 CO_CALL_PARAMETERS 结构的指针,该结构包含由面向连接的客户端为 VC 指定的新调用参数。
返回值
ProtocolCmModifyQoS 将作的状态作为以下值之一返回:
返回代码 | 描述 |
---|---|
|
指示调用管理器已成功将调用的参数与网络更改为在 CallParameters 指定的调用参数。 |
|
指示调用管理器将完成异步修改调用参数的请求。 当调用管理器完成修改调用参数所需的所有作时,它必须调用 NdisCmModifyCallQoSComplete。 |
|
指示调用管理器无法更改 VC 的调用参数,因为动态分配的资源不可用。 |
|
指示调用管理器无法更改 VC 的调用参数,因为 CallParameters 提供的调用参数 是非法的或无效的。 |
|
指示由于网络故障或其他面向连接的网络组件发生故障,无法将调用参数设置为提供的调用参数。 |
言论
ProtocolCmModifyQoS 与网络控制设备或其他媒体特定的代理通信,这是其媒体所必需,以修改已建立的虚拟连接的特定于媒体的调用参数。 如果调用管理器需要与网络控制代理(换句话说,网络交换机)通信,则应使用与网络控制代理建立的虚拟连接,该代理在其 ProtocolBindAdapterEx 函数中建立。 独立呼叫管理器通过调用 NdisCoSendNetBufferLists来与网络代理通信。 具有集成呼叫管理支持的微型端口驱动程序从不调用 NdisCoSendNetBufferLists。 相反,此类驱动程序只需将数据通过网络传输到目标网络代理。
与网络通信并且更改成功后,调用管理器必须使用新的调用参数调用 NdisCmActivateVc。 这会通知 NDIS 和/或面向连接的微型端口驱动程序调用参数已更改,并为微型端口驱动程序提供验证这些参数的机会。
如果网络不能接受新的调用参数,或者基础微型端口驱动程序无法接受这些参数,则调用管理器必须将虚拟连接还原到尝试任何修改之前存在的状态,并返回NDIS_STATUS_FAILURE。
示例
若要定义 ProtocolCmModifyCallQoS 函数,必须先提供一个函数声明来标识要定义的函数的类型。 Windows 为驱动程序提供了一组函数类型。 使用函数类型声明函数有助于 驱动程序代码分析、静态驱动程序验证程序(SDV)和其他验证工具查找错误,这是为 Windows作系统编写驱动程序的要求。例如,若要定义名为“MyCmModifyCallQoS”的 ProtocolCmModifyCallQoS 函数,请使用 PROTOCOL_CM_MODIFY_QOS_CALL 类型,如以下代码示例所示:
PROTOCOL_CM_MODIFY_QOS_CALL MyCmModifyCallQoS;
然后,按如下所示实现函数:
_Use_decl_annotations_
NDIS_STATUS
MyCmModifyCallQoS(
NDIS_HANDLE CallMgrVcContext,
PCO_CALL_PARAMETERS CallParameters
)
{...}
PROTOCOL_CM_MODIFY_QOS_CALL 函数类型在 Ndis.h 头文件中定义。 若要在运行代码分析工具时更准确地识别错误,请务必将 Use_decl_annotations 注释添加到函数定义。 Use_decl_annotations 批注可确保使用应用于头文件中 PROTOCOL_CM_MODIFY_QOS_CALL 函数类型的批注。 有关函数声明要求的详细信息,请参阅 使用 NDIS 驱动程序的函数角色类型声明函数。
有关 Use_decl_annotations的信息,请参阅 批注函数行为。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista 中支持 NDIS 6.0 和 NDIS 5.1 驱动程序(请参阅 ProtocolCmModifyCallQoS (NDIS 5.1) 。 在 Windows XP 中支持 NDIS 5.1 驱动程序(请参阅 ProtocolCmModifyCallQoS (NDIS 5.1)。 |
目标平台 | 窗户 |
标头 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | SpinLockBalanced(ndis),SpinLockDpr(ndis) |