Compartir a través de


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

La función ProtocolClCloseCallComplete la usan los clientes NDIS orientados a la conexión. Todos los clientes NDIS orientados a la conexión deben tener funciones ProtocolClCloseCallComplete para completar las operaciones asincrónicas que inician con

NdisClCloseCall.

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

Sintaxis

PROTOCOL_CL_CLOSE_CALL_COMPLETE ProtocolClCloseCallComplete;

void ProtocolClCloseCallComplete(
  [in]           NDIS_STATUS Status,
  [in]           NDIS_HANDLE ProtocolVcContext,
  [in, optional] NDIS_HANDLE ProtocolPartyContext
)
{...}

Parámetros

[in] Status

Especifica el estado final de la solicitud del cliente para cerrar esta llamada, que puede ser una de las siguientes:

NDIS_STATUS_SUCCESS

El administrador de llamadas ha cerrado correctamente la llamada que existía en la credencial verificable especificada y ha desactivado la credencial verificable.

NDIS_STATUS_XXX

El administrador de llamadas produjo un error en la solicitud para cerrar la llamada por algún motivo determinado por CM y NDIS propagó el estado devuelto por su función ProtocolCmCloseCall al cliente.

[in] ProtocolVcContext

Especifica el identificador del área de contexto por VC del cliente Este es el identificador que el cliente pasó originalmente a NDIS con NdisCoCreateVc o que se devuelve a NDIS desde su función ProtocolCoCreateVc .

[in, optional] ProtocolPartyContext

Especifica el identificador del área de contexto por parte del cliente para la última parte restante en el VC creado por el cliente que representa una conexión de varios puntos. De lo contrario, este parámetro es NULL.

Valor devuelto

None

Observaciones

Si el cliente creó la credencial verificable especificada y status es NDIS_STATUS_SUCCESS, el cliente ahora puede realizar cualquiera de las siguientes acciones:

  • Descomprima su VC con NdisCoDeleteVc y libere o prepare para reutilizar las áreas de contexto asignadas.
  • Reinicializa su área de contexto por VC y reutiliza su VC para establecer otra conexión con NdisClMakeCall.
Si el administrador de llamadas creó el VC, el cliente debe considerar que NdisVcHandle no es válido cuando se llama a ProtocolClCloseCallComplete . El cliente no debe realizar más llamadas a NdisCl/CoXxx con este NdisVcHandle . Después de que ProtocolClCloseCallComplete devuelva el control, el administrador de llamadas puede eliminar su VC, lo que provoca una llamada a la función ProtocolCoDeleteVc del cliente. El administrador de llamadas incluso puede enviar otra llamada entrante en el VC que creó, lo que provoca una llamada al cliente. Función ProtocolClIncomingCall .

Ejemplos

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

PROTOCOL_CL_CLOSE_CALL_COMPLETE MyClCloseCallComplete;

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

_Use_decl_annotations_
VOID
 MyClCloseCallComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolVcContext,
    NDIS_HANDLE  ProtocolPartyContext
    )
  {...}

El tipo de función PROTOCOL_CL_CLOSE_CALL_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_CLOSE_CALL_COMPLETE 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 ProtocolClCloseCallComplete (NDIS 5.1)) en Windows Vista. Compatible con controladores NDIS 5.1 (consulte ProtocolClCloseCallComplete (NDIS 5.1)) en Windows XP.
Plataforma de destino Windows
Encabezado ndis.h (incluya Ndis.h)
IRQL <= DISPATCH_LEVEL

Consulte también

NdisClCloseCall

NdisClMakeCall

NdisCmCloseCallComplete

NdisCoDeleteVc

NdisMCmCloseCallComplete

ProtocolClIncomingCall

ProtocolCmCloseCall

ProtocolCoDeleteVc