Condividi tramite


Scollegamento del modulo di rete

Una coppia di moduli di rete collegati viene scollegata quando il modulo client o il modulo provider si deregistra dal Registro dei Moduli di Rete (NMR). Un modulo client annulla la registrazione con NMR chiamando la funzione NmrDeregisterClient e un modulo provider annulla la registrazione con NMR chiamando la funzione NmrDeregisterProvider. Il diagramma seguente illustra i moduli di rete che avviano la deregistrazione.

Diagramma che mostra i moduli di rete che avviano il processo di annullamento della registrazione.

Quando uno dei moduli di rete annulla la registrazione presso l'NMR, l'NMR chiama sia la funzione di callback ClientDetachProvider del modulo client che la funzione di callback ProviderDetachClient del modulo provider per avviare la disconnessione del modulo di rete. Il diagramma seguente illustra l'NMR che avvia il distacco.

Diagramma che mostra NMR che avvia lo scollegamento dei moduli di rete.

Se il modulo client non è in grado di disconnettersi immediatamente dal modulo del provider, chiama la funzione NmrClientDetachProviderComplete dopo il completamento della disconnessione dal modulo del provider. Analogamente, se il modulo provider non può disconnettersi immediatamente dal modulo client, chiama la funzionenmrProviderDetachClientCompletedopo il completamento della disconnessione dal modulo client. Il diagramma seguente illustra i moduli di rete che completano lo scollegamento.

Diagramma che illustra i moduli di rete che completano il processo di scollegamento.

Dopo che il modulo client e il modulo provider hanno completato lo scollegamento tra loro, l'NMR chiama la funzione di callback ClientCleanupBindingContext del modulo client e la funzione di callback ProviderCleanupBindingContext del modulo provider, in modo che i moduli di rete possano pulire i rispettivi contesti di associazione per l'aggancio. Il diagramma seguente illustra l'avvio della pulizia di NMR.

Diagramma che mostra NMR che avvia la pulizia dopo lo scollegamento dei moduli di rete.

Se il modulo client è stato deregistrato dall'NMR, la deregistrazione del modulo client non è completa finché il modulo client non è completamente scollegato da tutti i moduli del provider a cui era stato precedentemente collegato e finché tutti quei moduli del provider non sono completamente scollegati dal modulo client. Il modulo client attende il completamento della deregistrazione chiamando la funzione NmrWaitForClientDeregisterComplete. Analogamente, se il modulo provider si deregistra dal NMR, la deregistrazione non è completata fino a quando il modulo provider non si è completamente scollegato da tutti i moduli client a cui era precedentemente collegato e tutti questi moduli client non si sono completamente scollegati dal modulo provider. Il modulo del provider attende il completamento della cancellazione chiamando la funzione NmrWaitForProviderDeregisterComplete. Il diagramma seguente illustra i moduli di rete in attesa del completamento della deregistrazione.

Diagramma che mostra i moduli di rete in attesa del completamento della deregistrazione.