Función NdisCmMakeCallComplete (ndis.h)
NdisCmMakeCallComplete devuelve el estado final de la solicitud de un cliente, para la que el administrador de llamadas devolvió previamente NDIS_STATUS_PENDING, para realizar una llamada saliente.
void NdisCmMakeCallComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE NdisVcHandle,
[in, optional] NDIS_HANDLE NdisPartyHandle,
[in, optional] NDIS_HANDLE CallMgrPartyContext,
[in] PCO_CALL_PARAMETERS CallParameters
);
[in] Status
Especifica el estado final del intento de realizar la conexión, ya sea NDIS_STATUS_SUCCESS o cualquier NDIS_STATUS_ XXX determinado por CM, excepto NDIS_STATUS_PENDING.
[in] NdisVcHandle
Especifica el identificador de la credencial verificable creada por el cliente, que el administrador de llamadas obtuvo originalmente como parámetro de entrada para su función ProtocolCoCreateVc . Más recientemente, el CM obtuvo este identificador de su estado por VC designado por CallMgrVcContext pasado a su función ProtocolCmMakeCall .
[in, optional] NdisPartyHandle
Especifica el identificador de la entidad inicial en el vc multipoint creado por el cliente, que el administrador de llamadas obtuvo como parámetro de entrada para su función ProtocolCmMakeCall . Si el NdisVcHandle especificado representa un VC de punto a punto, este parámetro era NULL.
[in, optional] CallMgrPartyContext
Especifica el identificador proporcionado por CM a un área de contexto residente asignada por el autor de la llamada, en la que cm mantendrá la información de estado por parte, o NULL si NdisPartyHandle es NULL. Para una credencial verificable de varios puntos, NDIS pasa este identificador CallManagerPartyContext proporcionado por CM en todas las llamadas posteriores a las funciones ProtocolCmXxx que afectan a esta entidad. De lo contrario, NDIS omite este parámetro.
[in] CallParameters
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.
None
Un administrador de llamadas independiente debe llamar a NdisMCmMakeCallComplete con NDIS_STATUS_SUCCESS solo si el controlador de miniporte subyacente está listo para realizar transferencias de datos en la credencial verificable. Es decir, el administrador de llamadas ha negociado con la red para establecer parámetros de llamada para la credencial verificable y llamado NdisCmActivateVc correctamente.
Un administrador de llamadas independiente debe llamar a NdisCmMakeCallComplete si su función ProtocolCmMakeCall devolvió previamente NDIS_STATUS_PENDING para el NdisVcHandle especificado. El cliente que inició la llamada saliente pendiente no puede usar la credencial verificable para realizar transferencias hasta que cm llama a NdisCmMakeCallComplete 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 de CM a NdisCmMakeCallComplete provoca una llamada a ese cliente. Función ProtocolClMakeCallComplete . De hecho, al no llamar a NdisCmMakeCallComplete por un intento fallido de configurar esta conexión, también se produce una pérdida de memoria en el administrador de llamadas; impide que el cliente desmonte la credencial verificable que creó para su llamada saliente con error, por lo que no se llama a CM para liberar los recursos que asignó para esa credencial verificable.
Si cm pasa un error, como NDIS_STATUS_FAILURE, para el estado, debe tener en cuenta NdisPartyHandle, si existe, no válido en cuanto llama a NdisCmMakeCallComplete. Cm puede liberar (o reinicializar para reutilizar) los recursos que asignó para mantener el estado de la entidad especificada cuando NdisCmMakeCallComplete devuelve el control. Posteriormente, se llamará a la función ProtocolCoDeleteVc de CM para liberar los recursos asignados para realizar el seguimiento del estado de la credencial verificable creada por el cliente cada vez que el CM pasa un estado de error a NdisCmMakeCallComplete.
En el transcurso de la configuración de una llamada saliente iniciada por el cliente, CM puede modificar los parámetros de llamada proporcionados por el cliente que se pasaron originalmente a su función ProtocolCmMakeCall . Si es así, el CM debe pasar sus modificaciones en el búfer en CallParameters cuando llama a NdisCmMakeCallComplete. 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 de CM.
Solo los administradores de llamadas independientes, que se registran con NDIS como controladores de protocolo, pueden llamar a NdisCmMakeCallComplete. Controladores de miniporte que proporcionan una llamada integrada de soporte técnico de administración de llamadas NdisMCmMakeCallComplete en su lugar.
Requisito | Value |
---|---|
Cliente mínimo compatible | Compatible con los controladores NDIS 6.0 y NDIS 5.1 (consulta NdisCmMakeCallComplete (NDIS 5.1)) en Windows Vista. Compatible con los controladores NDIS 5.1 (consulta NdisCmMakeCallComplete (NDIS 5.1)) en Windows XP. |
Plataforma de destino | Escritorio |
Encabezado | ndis.h (incluya Ndis.h) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Reglas de cumplimiento de DDI | Irql_CallManager_Function(ndis) |