Compartir a través de


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

Se requiere la función ProtocolCmModifyCallQoS . NDIS llama a ProtocolCmModifyCallQoS cuando un cliente orientado a la conexión solicita que se cambien los parámetros de llamada para una conexión virtual existente (VC). Si el medio de red subyacente no admite QoS, ProtocolCmModifyQoS simplemente debe devolver NDIS_STATUS_NOT_SUPPORTED.

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

Sintaxis

PROTOCOL_CM_MODIFY_QOS_CALL ProtocolCmModifyQosCall;

NDIS_STATUS ProtocolCmModifyQosCall(
  [in] NDIS_HANDLE CallMgrVcContext,
  [in] PCO_CALL_PARAMETERS CallParameters
)
{...}

Parámetros

[in] CallMgrVcContext

Especifica el identificador de un área de contexto asignada por el administrador de llamadas en la que el administrador de llamadas mantiene su estado por VC. El administrador de llamadas proporcionó este identificador a NDIS para su función ProtocolCoCreateVc .

[in] CallParameters

Puntero a una estructura de CO_CALL_PARAMETERS que contiene los nuevos parámetros de llamada, como especifica un cliente orientado a la conexión, para la credencial verificable.

Valor devuelto

ProtocolCmModifyQoS devuelve el estado de sus operaciones como uno de los valores siguientes:

Código devuelto Descripción
NDIS_STATUS_SUCCESS
Indica que el administrador de llamadas cambió correctamente los parámetros de la llamada con la red a los parámetros de llamada especificados en CallParameters .
NDIS_STATUS_PENDING
Indica que el administrador de llamadas completará la solicitud para modificar los parámetros de llamada de forma asincrónica. Cuando el administrador de llamadas haya completado todas las operaciones necesarias para modificar los parámetros de llamada, debe llamar a . NdisCmModifyCallQoSComplete.
NDIS_STATUS_RESOURCES
Indica que el administrador de llamadas no pudo cambiar los parámetros de llamada de la credencial verificable porque los recursos asignados dinámicamente no estaban disponibles.
NDIS_STATUS_INVALID_DATA
Indica que el administrador de llamadas no pudo cambiar los parámetros de llamada de la credencial verificable porque los parámetros de llamada proporcionados en CallParameters eran no válidos o no eran válidos.
NDIS_STATUS_FAILURE
Indica que los parámetros de llamada no se pudieron establecer en los parámetros de llamada proporcionados debido a un error en la red o en otro componente de red orientado a la conexión.

Comentarios

ProtocolCmModifyQoS se comunica con dispositivos de control de red u otros agentes específicos de medios, según sea necesario por sus medios, para modificar los parámetros de llamada específicos de medios para una conexión virtual establecida. Si el administrador de llamadas es necesario para comunicarse con agentes de control de red (es decir, un conmutador de red), debe usar una conexión virtual a los agentes de control de red que estableció en su función ProtocolBindAdapterEx . Los administradores de llamadas independientes se comunicaron con los agentes de red mediante una llamada a NdisCoSendNetBufferLists. Los controladores de minipuerto con soporte integrado de administración de llamadas nunca llaman a NdisCoSendNetBufferLists. En su lugar, este controlador simplemente transfiere los datos a través de la red al agente de red de destino.

Después de comunicarse con la red y si los cambios se realizaron correctamente, el administrador de llamadas debe llamar a NdisCmActivateVc con los nuevos parámetros de llamada. Esto notifica al controlador de minipuerto orientado a la conexión que los parámetros de llamada han cambiado y proporciona al controlador de minipuerto una oportunidad para validar esos parámetros.

Si la red no puede aceptar los nuevos parámetros de llamada o el controlador de miniport subyacente no puede aceptar los parámetros, el administrador de llamadas debe restaurar la conexión virtual al estado que existía antes de que se intentaran las modificaciones y devolver NDIS_STATUS_FAILURE.

Ejemplos

Para definir una función ProtocolCmModifyCallQoS , primero debe proporcionar una declaración de función que identifique el tipo de función que va a definir. 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 ProtocolCmModifyCallQoS denominada "MyCmModifyCallQoS", use el tipo de PROTOCOL_CM_MODIFY_QOS_CALL como se muestra en este ejemplo de código:

PROTOCOL_CM_MODIFY_QOS_CALL MyCmModifyCallQoS;

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

_Use_decl_annotations_
NDIS_STATUS
 MyCmModifyCallQoS(
    NDIS_HANDLE  CallMgrVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

El tipo de función PROTOCOL_CM_MODIFY_QOS_CALL 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_CM_MODIFY_QOS_CALL 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 ProtocolCmModifyCallQoS (NDIS 5.1)) en Windows Vista. Compatible con los controladores NDIS 5.1 (consulta ProtocolCmModifyCallQoS (NDIS 5.1)) en Windows XP.
Plataforma de destino Windows
Encabezado ndis.h (incluya Ndis.h)
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI SpinLockBalanced(ndis), SpinLockDpr(ndis)

Consulte también

NdisCmActivateVc

NdisCmModifyCallQoSComplete

NdisCoSendNetBufferLists

ProtocolCoCreateVc