PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE回调函数 (ndis.h)

ProtocolClModifyCallQoSComplete 函数由面向连接的 NDIS 客户端使用,这些客户端可以动态修改连接上的服务质量。 此类客户端必须具有 ProtocolClModifyCallQoSComplete 函数,才能完成它们使用 NdisClModifyCallQoS 启动的异步操作。 否则,此类协议驱动程序的已注册 ProtocolClModifyCallQoSComplete 函数只需返回控件。

注意 必须使用 PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE 类型声明函数。 有关详细信息,请参阅以下示例部分。
 

语法

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE ProtocolClModifyCallQosComplete;

void ProtocolClModifyCallQosComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolVcContext,
  [in] PCO_CALL_PARAMETERS CallParameters
)
{...}

参数

[in] Status

指定客户端的异步请求的最终状态,以修改此 VC 的调用参数,如下所示之一:

NDIS_STATUS_SUCCESS

QoS 已根据客户端的请求进行了修改。

NDIS_STATUS_RESOURCES

NDIS 或调用管理器无法修改 QoS,因为其中一个无法动态分配足够的资源。

NDIS_STATUS_INVALID_DATA

客户端提供给 NdisClModifyCallQoS 的调用参数无效。

NDIS_STATUS_FAILURE

由于网络或其他面向连接的网络组件发生故障,呼叫管理器无法更改 QoS。

NDIS_STATUS_XXX

调用管理器无法更改 QoS,并且 NDIS 将 CM 确定的失败状态传播到客户端。

[in] ProtocolVcContext

指定客户端每 VC 上下文区域的句柄,客户端在调用 NdisCoCreateVc 时最初提供给 NDIS,以便为其传出调用请求设置 VC,如果客户端接受了此 VC 的传入调用,则从其 ProtocolCoCreateVc 函数设置该 VC。

[in] CallParameters

指向缓冲CO_CALL_PARAMETERS结构的指针,该结构包含请求的客户端指定的 QoS 更改,或者可能是在激活连接时建立的此 VC 的原始 QoS(调用管理器已还原)。

返回值

备注

调用 ProtocolClModifyCallQoSComplete 表示调用管理器已完成客户端发起的请求的处理,以更改活动 VC 上的服务质量。 例如,如果基础网络媒体支持动态 QoS 更改,则客户端可以随时在活动 VC 上请求修改。

如果客户端调用 NdisClModifyCallQoS 成功, 则 ProtocolClModifyCallQoSComplete 只需返回控件即可接受 QoS 更改。 否则,只要客户端的开发人员对可能的重新协商数设置一些合理的限制, ProtocolClModifyCallQoSComplete 就可以与调用管理器进行进一步协商。 或者,每当调用管理器拒绝更改 QoS 的请求,并且客户端无法接受以前建立的 QoS 时, ProtocolClModifyCallQoSComplete 只需使用 NdisClClCloseCall 断开调用。

示例

若要定义 ProtocolClModifyCallQoSComplete 函数,必须先提供一个函数声明来标识要定义的函数类型。 Windows 为驱动程序提供了一组函数类型。 使用函数类型声明函数可帮助 驱动程序的代码分析静态驱动程序验证程序 (SDV) 和其他验证工具查找错误,并且这是为 Windows 操作系统编写驱动程序的要求。

例如,若要定义名为“ MyClModifyCallQoSComplete”的 ProtocolClModifyCallQoSComplete 函数,请使用 PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE 类型,如以下代码示例所示:

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE MyClModifyCallQoSComplete;

然后,按如下所示实现函数:

_Use_decl_annotations_
VOID
 MyClModifyCallQoSComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE函数类型在 Ndis.h 头文件中定义。 若要在运行代码分析工具时更准确地识别错误,请务必将 Use_decl_annotations 注释添加到函数定义。 Use_decl_annotations批注可确保使用应用于头文件中PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE函数类型的注释。 有关函数声明要求的详细信息,请参阅 使用 NDIS 驱动程序的函数角色类型声明函数

有关 Use_decl_annotations的信息,请参阅 批注函数行为

要求

要求
最低受支持的客户端 支持 NDIS 6.0 和 NDIS 5.1 驱动程序 (请参阅 Windows Vista 中的 ProtocolClModifyCallQoSComplete (NDIS 5.1) ) 。 支持 NDIS 5.1 驱动程序 (请参阅 Windows XP 中的 ProtocolClModifyCallQoSComplete (NDIS 5.1) ) 。
目标平台 Windows
标头 ndis.h (包括 Ndis.h)
IRQL <= DISPATCH_LEVEL

另请参阅

CO_CALL_PARAMETERS

NdisClCloseCall

NdisClModifyCallQoS

NdisCmModifyCallQoSComplete

NdisMCmModifyCallQoSComplete

ProtocolCmModifyCallQoS

ProtocolCoCreateVc