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.
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, tal como especifica un cliente orientado a la conexión, para el VC.
Valor devuelto
ProtocolCmModifyQoS devuelve el estado de sus operaciones como uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
|
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 . |
|
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. |
|
Indica que el administrador de llamadas no pudo cambiar los parámetros de llamada del VC porque los recursos asignados dinámicamente no estaban disponibles. |
|
Indica que el administrador de llamadas no pudo cambiar los parámetros de llamada del VC porque los parámetros de llamada proporcionados en CallParameters no eran válidos o no eran válidos. |
|
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. |
Observaciones
ProtocolCmModifyQoS se comunica con dispositivos de control de red u otros agentes específicos de medios, según lo requiera su medio, 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 de ProtocolBindAdapterEx. Los administradores de llamadas independientes se comunicaron con los agentes de red llamando a NdisCoSendNetBufferLists. Los controladores de miniport con compatibilidad integrada con la 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 miniporte orientado a la conexión que los parámetros de llamada han cambiado y proporciona al controlador de miniporte la oportunidad de 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 de
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 análisis de código para controladores, comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran 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 PROTOCOL_CM_MODIFY_QOS_CALL tal 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, vea 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, vea Anotación del comportamiento de la función.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Compatible con controladores NDIS 6.0 y NDIS 5.1 (consulte ProtocolCmModifyCallQoS (NDIS 5.1)) en Windows Vista. Compatible con los controladores NDIS 5.1 (consulte ProtocolCmModifyCallQoS (NDIS 5.1)) en Windows XP. |
de la plataforma de destino de | Windows |
encabezado de | ndis.h (incluya Ndis.h) |
irQL | <= DISPATCH_LEVEL |
reglas de cumplimiento de DDI | SpinLockBalanced(ndis), SpinLockDpr(ndis) |