Compartir a través de


Desaprendimiento de módulos de red

Un par asociado de módulos de red se desasocian entre sí cuando el módulo cliente o el módulo de proveedor se registran con el Registrador de módulos de red (NMR). Un módulo cliente anula el registro con nmR llamando a la función NmrDeregisterClient y a un módulo de proveedor se registra con la NMR llamando a la función NmrDeregisterProvider . En el diagrama siguiente se muestran los módulos de red que inician la desregistración.

Diagrama que muestra los módulos de red que inician el proceso de desregistración.

Cuando cualquiera de los módulos de red se desregistra con NMR, NMR llama a la función de devolución de llamada ClientDetachProvider del módulo de cliente y a la función de devolución de llamada ProviderDetachClient del módulo de proveedor para iniciar la desasociación del módulo de red. En el diagrama siguiente se muestra el NMR que inicia el desprendimiento.

Diagrama que muestra NMR que inicia el desaprendimiento de los módulos de red.

Si el módulo cliente no puede desasociarse del módulo de proveedor inmediatamente, llama a la función NmrClientDetachProviderComplete después de completar la desasociación del módulo de proveedor. Del mismo modo, si el módulo de proveedor no puede desasociarse del módulo cliente inmediatamente, llama a la función NmrProviderDetachClientComplete después de completar la desasociación del módulo cliente. En el diagrama siguiente se muestran los módulos de red que completan el desprendimiento.

Diagrama en el que se muestran los módulos de red que completan el proceso de desconexión.

Después de que el módulo cliente y el módulo de proveedor se hayan completado entre sí, NMR llama a la función de devolución de llamada ClientCleanupBindingContext del módulo de cliente y la función de devolución de llamada ProviderCleanupBindingContext del módulo de proveedor para que los módulos de red puedan limpiar sus respectivos contextos de enlace para los datos adjuntos. En el diagrama siguiente se muestra el NMR que inicia la limpieza.

Diagrama que muestra el inicio de la limpieza de NMR después del desaprendimiento de módulos de red.

Si el módulo cliente se ha registrado con NMR, la desregistración del módulo cliente no se completa hasta que el módulo cliente se haya desasociado completamente de todos los módulos de proveedor a los que se adjuntó anteriormente y todos esos módulos de proveedor se han desasociado completamente del módulo cliente. El módulo cliente espera a que se complete la desregistración llamando a la función NmrWaitForClientDeregisterComplete . Del mismo modo, si el módulo de proveedor se ha registrado con nmR, la desregistración del módulo de proveedor no se completa hasta que el módulo de proveedor se haya desasociado completamente de todos los módulos cliente a los que se adjuntó anteriormente y todos esos módulos de cliente se han desasociado completamente del módulo del proveedor. El módulo de proveedor espera a que se complete la desregistración llamando a la función NmrWaitForProviderDeregisterComplete . En el diagrama siguiente se muestran los módulos de red que esperan que se complete la desregistración.

Diagrama que muestra los módulos de red esperando la finalización del registro.