Condividi tramite


Uso dei metodi

Quando un client esegue la registrazione con gestione tabelle di routing, può esportare un set di metodi. Questi metodi vengono usati da altri client per ottenere informazioni specifiche del client. I metodi consentono la comunicazione privata tra i client della gestione tabelle di routing.

Un client può ottenere l'elenco dei metodi esportati da un altro client. Il client chiama la funzione RtmGetEntityMethods , fornendo l'handle del client di destinazione.

Ogni metodo esportato da un client viene identificato in modo univoco dall'identificatore del metodo. Ogni client può esportare fino a 32 metodi. Ogni metodo corrisponde a un bit impostato nel membro MethodType della struttura RTM_ENTITY_EXPORT_METHOD . Per richiamare più metodi, il client deve eseguire un OR logico degli identificatori per tali metodi. La sintassi e la semantica delle strutture di input e di output per ogni protocollo devono essere specificate quando viene implementato il protocollo.

Nota

I valori dell'identificatore del metodo corrispondenti a un bit impostato nella metà inferiore del membro MethodType (i 16 bit inferiori) sono riservati da Microsoft.

 

Per richiamare il metodo di un secondo client, un client chiama la funzione RtmInvokeMethod . Gestione tabelle di routing arbitra tutte le richieste per richiamare i metodi di un client. Gestione tabelle di routing esegue due funzioni quando si arbitra tra i client:

  • Impedisce al secondo client di richiamare un metodo per un client che sta annullando la registrazione.
  • Tenere una richiesta "invoke" quando i metodi vengono bloccati e consentire alla richiesta di continuare quando i metodi vengono sbloccati.

Se un client deve impedire ad altri client di eseguire i metodi, il client può chiamare RtmBlockMethods. Gestione tabelle di routing non consente l'elaborazione di una chiamata a RtmInvokeMethod finché il client non sblocca nuovamente i metodi.

I client bloccano in genere i metodi quando apportano modifiche ai dati privati che vengono scambiati tra i client. I metodi di blocco sono un'azione facoltativa. Un client può anche usare blocchi interni per impedire ad altri client di richiamare metodi.

Per il codice di esempio che illustra come usare queste funzioni, vedere Ottenere e Chiamare i metodi esportati per un client.