Macro NdisMCmMakeCallComplete (ndis.h)

NdisMCmMakeCallComplete devuelve el estado final de la solicitud de un cliente, para la que el controlador MCM devolvió anteriormente NDIS_STATUS_PENDING, para realizar una llamada saliente.

Sintaxis

void NdisMCmMakeCallComplete(
   _S_,
   _VH_,
   _PH_,
   _CC_,
   _CP_
);

Parámetros

_S_

Especifica el estado final del intento de realizar la conexión, ya sea NDIS_STATUS_SUCCESS o cualquier NDIS_STATUS_ XXX determinado por el autor de la llamada, excepto NDIS_STATUS_PENDING.

_VH_

Especifica el identificador para el VC creado por el cliente, que el controlador MCM obtuvo como parámetro de entrada para su función ProtocolCoCreateVc y, más recientemente, de la función CallMgrVcContext pasada a su función ProtocolCmMakeCall .

_PH_

Especifica el identificador de la entidad inicial en la vc multipoint creada por el cliente, que el controlador MCM obtuvo como parámetro de entrada para su función ProtocolCmMakeCall . Si el NdisVcHandle especificado representa una vc de punto a punto, este parámetro era NULL.

_CC_

Especifica el identificador de un área de contexto residente asignada por el autor de la llamada, en la que el controlador MCM mantendrá la información de estado por parte, o este parámetro es NULL si NdisPartyHandle es NULL. Para un VC de varios puntos, NDIS pasa este identificador CallManagerPartyContext proporcionado por MCM en todas las llamadas posteriores a las funciones ProtocolCmXxx que conciernen a esta entidad. Si Status es algo distinto de NDIS_STATUS_SUCCESS, NDIS omite este parámetro.

_CP_

Puntero a una estructura de tipo CO_CALL_PARAMETERS que especifica los parámetros de llamada configurados para esta conexión si Status es NDIS_STATUS_SUCCESS.

Valor devuelto

None

Observaciones

Un controlador MCM debe llamar a NdisMCmMakeCallComplete con NDIS_STATUS_SUCCESS solo si está listo para realizar transferencias de datos en el VC. Es decir, el controlador MCM ha negociado con la red para establecer los parámetros de llamada para la vc, configurar una NIC para esos parámetros de llamada y llamar a NdisMCmActivateVc para notificar a NDIS de la activación de VC.

Un controlador MCM debe llamar a NdisMCmMakeCallComplete si su función ProtocolCmMakeCall devolvió anteriormente NDIS_STATUS_PENDING para el NdisVcHandle dado. El cliente, que inició la llamada saliente pendiente, no puede usar la credencial verificable para realizar transferencias hasta que el controlador de miniporte llame a NdisMCmMakeCallComplete con NDIS_STATUS_SUCCESS.

Incluso si se produjo un error en la conexión intentada, ni NDIS ni el cliente pueden liberar los recursos asignados para mantener el estado hasta que la llamada del controlador MCM a NdisMCmMakeCallComplete provoca una llamada a ese cliente. Función ProtocolClMakeCallComplete . De hecho, descuidando llamar a NdisMCmMakeCallComplete para un intento erróneo de configurar dicha conexión también provoca una pérdida de memoria en el controlador MCM; evita que el cliente desmonte la credencial verificable que creó para su llamada saliente con error, por lo que no se llama a la función ProtocolCoDeleteVc del controlador MCM para liberar los recursos asignados al controlador de miniport para esa vc.

Si el controlador MCM pasa un error, como NDIS_STATUS_FAILURE, para el estado, debe tener en cuenta el control NdisPartyHandle, si existe, no válido cuando NdisMCmMakeCallComplete devuelve el control. Cm puede liberar (o reinicializar para reutilizar) los recursos asignados para mantener el estado de la entidad especificada después de que NdisMCmMakeCallComplete devuelva el control. Posteriormente, se llamará a la función ProtocolCoDeleteVc del controlador MCM para liberar los recursos que el controlador de miniporte asignado para realizar el seguimiento del estado del VC creado por el cliente cada vez que el controlador MCM pasa un estado de error a NdisMCmMakeCallComplete.

En el transcurso de la configuración de una llamada saliente iniciada por el cliente, el controlador MCM puede modificar los parámetros de llamada proporcionados por el cliente que se pasaron originalmente a su función ProtocolCmMakeCall . Si lo hace, el controlador MCM debe pasar sus modificaciones en el búfer en CallParameters cuando llama a NdisMCmMakeCallComplete. Si el cliente encuentra estos parámetros de llamada modificados inaceptables, anulará la llamada, lo que también provocará una llamada a la función ProtocolCoDeleteVc del controlador MCM.

Solo los controladores de miniport orientados a la conexión que proporcionan compatibilidad integrada con la administración de llamadas pueden llamar a NdisMCmMakeCallComplete. Los administradores de llamadas independientes, que se registran con NDIS como controladores de protocolo, llaman a NdisCmMakeCallComplete en su lugar.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con controladores NDIS 6.0 y NDIS 5.1 (consulte NdisMCmMakeCallComplete (NDIS 5.1)) en Windows Vista. Compatible con controladores NDIS 5.1 (consulte NdisMCmMakeCallComplete (NDIS 5.1)) en Windows XP.
Plataforma de destino Escritorio
Encabezado ndis.h (incluya Ndis.h)
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI Irql_MCM_Function(ndis)

Consulte también

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisCmMakeCallComplete

ProtocolClMakeCallComplete

ProtocolCmMakeCall

ProtocolCoDeleteVc