Desactivación de una credencial verificable
Un administrador de llamadas llama a NdisCmDeactivateVc como un paso esencial para cerrar una llamada saliente o entrante, normalmente después del intercambio de paquetes con componentes de red que desglosan la llamada (consulte Solicitud iniciada por el cliente para cerrar una llamada y solicitud entrante para cerrar una llamada). Un controlador MCM hace lo mismo llamando a NdisMCmDeactivateVc.
La llamada a NdisCmDeactivateVc hace que NDIS llame a la función MiniportCoDeactivateVc del controlador miniporte subyacente (consulte la ilustración siguiente). MiniportCoDeactivateVc se comunica con su adaptador de red para finalizar toda la comunicación entre esta vc (por ejemplo, borrar los búferes de recepción o envío en el adaptador).
Antes de desactivar un VC, el controlador de minipuerto debe completar las transferencias pendientes en el VC. Es decir, el controlador de miniporte debe esperar hasta que haya completado todos los envíos en curso y hasta que se devuelvan todos los paquetes de recepción que ha indicado. Después de desactivar la credencial verificable, el controlador de miniporte no puede indicar los envíos de recepción o transmisión en el VC.
Tenga en cuenta que MiniportCoDeactivateVc no elimina la credencial verificable. El creador (cliente, administrador de llamadas o controlador MCM) de un vc determinado que no se reutilizará llama a NdisCoDeleteVc para destruir esa credencial verificable. Un vc desactivado se puede reactivar mediante un cliente orientado a la conexión, un administrador de llamadas o un controlador MCM.
MiniportCoDeactivateVc puede completarse de forma sincrónica o asincrónica. Una llamada a NdisMCoDeactivateVcComplete. hace que NDIS llame a la función ProtocolCmDeactivateVcComplete del administrador de llamadas que solicitó originalmente la desactivación de VC. La finalización de la desactivación significa que todos los parámetros de llamada para la credencial verificable usada en la activación ya no son válidos. Cualquier uso adicional de la credencial verificable está prohibido, excepto para reactivarlo con un nuevo conjunto de parámetros de llamada.
Una llamada del controlador MCM a NdisMCmDeactivateVc informa a NDIS de que ha desactivado una credencial verificable o ha cambiado los parámetros de llamada en una credencial verificable establecida (consulte la figura siguiente). NDIS completa la secuencia de desactivación llamando a la función ProtocolCmDeactivateVcComplete del controlador MCM.
Un controlador MCM no llama a NdisMCmDeactivateVc para desactivar las máquinas virtuales usadas para intercambiar mensajes de señalización entre el controlador MCM y los componentes de red, como un conmutador. Un controlador MCM desactiva un VC de señalización internamente sin llamar a ninguna función NdisXxx .