Eliminación de una credencial verificable
Solo el cliente orientado a la conexión, el administrador de llamadas o el controlador MCM que inició la creación de un circuito virtual (VC) pueden iniciar la eliminación de esa credencial verificable. Por lo tanto, un cliente elimina un VC que creó anteriormente para una llamada saliente, un administrador de llamadas o un controlador MCM elimina un VC que creó anteriormente para una llamada entrante a través de la red y un administrador de llamadas elimina una credencial verificable que creó anteriormente para intercambiar mensajes de señalización a través de la red. (Un controlador MCM no llama a NDIS para eliminar un VC que creó para intercambiar mensajes de señalización. El controlador MCM elimina este tipo de VC con una operación interna que es opaca para NDIS).
Un cliente o administrador de llamadas orientado a la conexión inicia la eliminación de una credencial verificable con NdisCoDeleteVc.
En la ilustración siguiente se muestra un cliente de un administrador de llamadas que inicia la eliminación de una credencial verificable.
En la ilustración siguiente se muestra un cliente de un controlador MCM que inicia la eliminación de una credencial verificable.
En la ilustración siguiente se muestra un administrador de llamadas que inicia la eliminación de una credencial verificable.
Cuando un cliente o administrador de llamadas llama a NdisCoDeleteVc o cuando un controlador MCM llama a NdisMCmDeleteVc, no debe haber llamadas pendientes en el VC especificado y que VC ya debe haberse desactivado. Para cumplir estos requisitos implica que se cumplen las siguientes condiciones:
El cliente ya ha llamado a NdisClCloseCall con el NdisVcHandle dado y su solicitud de llamada de cierre se ha completado correctamente.
El administrador de llamadas ya ha llamado a NdisCmDeactivateVc o el controlador MCM ya ha llamado a NdisMCmDeactivateVc con el NdisVcHandle dado y la solicitud de desactivación se ha completado correctamente (consulte Solicitud entrante para cerrar una llamada).
La llamada de un cliente o del administrador de llamadas a NdisCoDeleteVc hace que NDIS llame tanto a la función MiniportCoDeleteVc del controlador de miniport subyacente como a la función ProtocolCoDeleteVc del cliente o administrador de llamadas con la que el autor de la llamada comparte NdisVcHandle (vea las tres figuras anteriores).
MiniportCoDeleteVc libera todos los recursos asignados para el VC, así como el contexto del controlador de miniporte para la vc. ProtocolCoDeleteVc libera todos los recursos que el cliente o el administrador de llamadas usan para realizar operaciones y realizar un seguimiento del estado de la credencial virtual. MiniportCoDeleteVc y ProtocolCoDeleteVc son funciones sincrónicas que no pueden devolver NDIS_STATUS_PENDING.
Un controlador MCM inicia la eliminación de una credencial verificable con NdisMCmDeleteVc(consulte la ilustración siguiente).
Una llamada del controlador MCM a NdisMCmDeleteVc hace que NDIS llame a la función ProtocolCoDeleteVc del cliente con la que el controlador MCM compartió el NdisVcHandle .
Cuando NdisCoDeleteVc o NdisMCmDeleteVc devuelve el control , NdisVcHandle ya no es válido.