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

La función ProtocolClIncomingCall la usan los clientes orientados a la conexión que aceptan llamadas entrantes. Estos clientes deben tener funciones ProtocolClIncomingCall . De lo contrario, la función ProtocolClIncomingCall registrada del controlador de protocolo puede simplemente devolver NDIS_STATUS_NOT_SUPPORTED.

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

Sintaxis

PROTOCOL_CL_INCOMING_CALL ProtocolClIncomingCall;

NDIS_STATUS ProtocolClIncomingCall(
  [in]      NDIS_HANDLE ProtocolSapContext,
  [in]      NDIS_HANDLE ProtocolVcContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters
)
{...}

Parámetros

[in] ProtocolSapContext

Especifica el identificador que el cliente proporcionó originalmente cuando registró sap, que el administrador de llamadas coincide con esta oferta de llamada entrante.

[in] ProtocolVcContext

Especifica el identificador para el área de contexto por VC del cliente, que anteriormente se devolvía a NDIS por su función ProtocolCoCreateVc .

[in, out] CallParameters

Puntero a un búfer, con formato de estructura CO_CALL_PARAMETERS , que contiene los parámetros de llamada para esta llamada ofrecida.

Valor devuelto

ProtocolClIncomingCall puede devolver uno de los siguientes códigos de estado:

Código devuelto Descripción
NDIS_STATUS_SUCCESS
El cliente aceptó la oferta de llamada entrante.
NDIS_STATUS_PENDING
El cliente controla esta solicitud de forma asincrónica y llamará a . Función NdisClIncomingCallComplete cuando se completa la operación de cierre.
NDIS_STATUS_XXX
El cliente rechazó la oferta de llamada entrante por algún motivo determinado por el controlador.

Comentarios

Una llamada a ProtocolClIncomingCall indica que el administrador de llamadas ha recibido una solicitud a través de la red desde un par de señalización para establecer una conexión con este cliente. Es decir, la solicitud para configurar dicha conexión se dirigió a un SAP registrado previamente con el administrador de llamadas por este cliente.

Según el protocolo de señalización admitido por el administrador de llamadas, ProtocolClIncomingCall puede modificar los parámetros de tráfico como parte del proceso de negociación de la aceptación de una oferta de llamada entrante o, si el administrador de llamadas admite QoS, la calidad de la especificación del servicio en CallParameters . El cliente debe copiar cualquier información que necesite posteriormente de esta estructura almacenada en búfer si acepta la llamada ofrecida.

Suponiendo que el administrador de llamadas encuentra las modificaciones del cliente, si existe, aceptable, NDIS siguiente llama a la función ProtocolClIncomingCallConnected del cliente cuando es posible que se produzcan transferencias en el VC activo que representa la conexión con el cliente en el nodo remoto que inició originalmente la oferta de llamada. Si el cliente devuelve parámetros de llamada modificados que son inaceptables, el administrador de llamadas puede anular la credencial verificable que creó para esta oferta, lo que provoca llamadas al cliente. ProtocolClIncomingCloseCall y, a continuación, las funciones ProtocolCoDeleteVc en su lugar.

Ejemplos

Para definir una función ProtocolClIncomingCall , 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 ProtocolClIncomingCall denominada "MyClIncomingCall", use el tipo PROTOCOL_CL_INCOMING_CALL como se muestra en este ejemplo de código:

PROTOCOL_CL_INCOMING_CALL MyClIncomingCall;

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

_Use_decl_annotations_
NDIS_STATUS
 MyClIncomingCall(
    NDIS_HANDLE  ProtocolSapContext,
    NDIS_HANDLE  ProtocolVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

El tipo de función PROTOCOL_CL_INCOMING_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_CL_INCOMING_CALL en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declarar funciones mediante 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 controladores NDIS 6.0 y NDIS 5.1 (consulte ProtocolClIncomingCall (NDIS 5.1)) en Windows Vista. Compatible con controladores NDIS 5.1 (consulte ProtocolClIncomingCall (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

NdisClIncomingCallComplete

NdisClRegisterSap

NdisCmDispatchIncomingCall

NdisMCmDispatchIncomingCall

ProtocolClCallConnected

ProtocolClIncomingCloseCall

ProtocolCoCreateVc

ProtocolCoDeleteVc