Compartir a través de


PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE función de devolución de llamada (ndis.h)

Los clientes NDIS orientados a la conexión usan la función ProtocolClModifyCallQoSComplete que puede modificar la calidad de servicio en una conexión dinámicamente. Estos clientes deben tener funciones ProtocolClModifyCallQoSComplete para completar las operaciones asincrónicas que inician con NdisClModifyCallQoS. De lo contrario, la función ProtocolClModifyCallQoSComplete registrada del controlador de protocolo puede simplemente devolver el control.

Nota Debe declarar la función mediante el tipo PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE . Para obtener más información, consulte la sección Ejemplos siguientes.
 

Sintaxis

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE ProtocolClModifyCallQosComplete;

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

Parámetros

[in] Status

Especifica el estado final de la solicitud asincrónica del cliente para modificar los parámetros de llamada para esta credencial verificable como uno de los siguientes:

NDIS_STATUS_SUCCESS

El cliente modificó el QoS tal y como lo solicitó el cliente.

NDIS_STATUS_RESOURCES

NDIS o el administrador de llamadas no pudieron modificar el QoS porque uno de ellos no pudo asignar recursos suficientes dinámicamente.

NDIS_STATUS_INVALID_DATA

Los parámetros de llamada que el cliente proporcionó a NdisClModifyCallQoS no eran válidos .

NDIS_STATUS_FAILURE

El administrador de llamadas no pudo cambiar el QoS debido a un error en la red o en otro componente de red orientado a la conexión.

NDIS_STATUS_XXX

El administrador de llamadas no pudo cambiar el QoS y NDIS propagó el estado de error determinado por CM al cliente.

[in] ProtocolVcContext

Especifica el identificador del área de contexto por VC del cliente, que el cliente proporcionó originalmente a NDIS cuando llamó a NdisCoCreateVc para configurar la credencial verificable para su solicitud de llamada saliente o desde su función ProtocolCoCreateVc si el cliente aceptó una llamada entrante en esta credencial verificable.

[in] CallParameters

Puntero a una estructura de CO_CALL_PARAMETERS almacenada en búfer que contiene el QoS especificado por el cliente que solicitó o, posiblemente, el QoS original para esta credencial verificable establecida cuando se activó la conexión, que el administrador de llamadas ha restaurado.

Valor devuelto

None

Observaciones

Una llamada a ProtocolClModifyCallQoSComplete indica que el administrador de llamadas ha completado el procesamiento de una solicitud iniciada por el cliente para cambiar la calidad del servicio en una credencial verificable activa. Por ejemplo, si el medio de red subyacente admite cambios dinámicos de QoS, un cliente puede solicitar modificaciones en cualquier momento en una credencial verificable activa.

Si la llamada del cliente a NdisClModifyCallQoS se realiza correctamente, ProtocolClModifyCallQoSComplete puede aceptar el cambio de QoS simplemente devolviendo el control. De lo contrario, ProtocolClModifyCallQoSComplete puede participar en una negociación adicional con el administrador de llamadas siempre que el desarrollador del cliente coloque algún límite razonable en el número de posibles renegociaciones. Como alternativa, ProtocolClModifyCallQoSComplete simplemente puede anular la llamada con NdisClCloseCall cada vez que el administrador de llamadas rechaza una solicitud para cambiar el QoS y la QoS establecida anteriormente se ha vuelto inaceptable para el cliente.

Ejemplos

Para definir una función ProtocolClModifyCallQoSComplete , primero debe proporcionar una declaración de función que identifique el tipo de función que está definiendo. Windows proporciona un conjunto de tipos de función para controladores. Declarar una función mediante los tipos de función ayuda a Code Analysis for Drivers, Static Driver Verifier (SDV) y otras herramientas de comprobación a encontrar errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir una función ProtocolClModifyCallQoSComplete denominada "MyClModifyCallQoSComplete", use el tipo PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE como se muestra en este ejemplo de código:

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE MyClModifyCallQoSComplete;

A continuación, implemente la función de la siguiente manera:

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

El tipo de función PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE se define en el archivo de encabezado Ndis.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, consulte Declaración de funciones mediante el uso de tipos de roles de función para controladores NDIS.

Para obtener información sobre Use_decl_annotations, consulte Anotación del comportamiento de la función.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con los controladores NDIS 6.0 y NDIS 5.1 (consulta ProtocolClModifyCallQoSComplete (NDIS 5.1)) en Windows Vista. Compatible con los controladores NDIS 5.1 (consulta ProtocolClModifyCallQoSComplete (NDIS 5.1)) en Windows XP.
Plataforma de destino Windows
Encabezado ndis.h (incluya Ndis.h)
IRQL <= DISPATCH_LEVEL

Consulte también

CO_CALL_PARAMETERS

NdisClCloseCall

NdisClModifyCallQoS

NdisCmModifyCallQoSComplete

NdisMCmModifyCallQoSComplete

ProtocolCmModifyCallQoS

ProtocolCoCreateVc