Partager via


Utilisation de méthodes

Lorsqu’un client s’inscrit auprès du gestionnaire de tables de routage, il peut exporter un ensemble de méthodes. Ces méthodes sont utilisées par d’autres clients pour obtenir des informations spécifiques au client. Les méthodes permettent la communication privée entre les clients du gestionnaire de tables de routage.

Un client peut obtenir la liste des méthodes exportées par un autre client. Le client appelle la fonction RtmGetEntityMethods , en fournissant le handle du client cible.

Chaque méthode exportée par un client est identifiée de manière unique par son identificateur de méthode. Chaque client peut exporter jusqu’à 32 méthodes. Chaque méthode correspond à un bit défini dans le membre MethodType de la structure RTM_ENTITY_EXPORT_METHOD . Pour appeler plusieurs méthodes, le client doit effectuer un OR logique des identificateurs de ces méthodes. La syntaxe et la sémantique des structures d’entrée et de sortie pour chaque protocole doivent être spécifiées lors de l’implémentation du protocole.

Notes

Les valeurs d’identificateur de méthode qui correspondent à un bit défini dans la moitié inférieure du membre MethodType (les 16 bits inférieurs) sont réservées par Microsoft.

 

Pour appeler la méthode d’un deuxième client, un client appelle la fonction RtmInvokeMethod . Le gestionnaire de table de routage arbitre toutes les demandes pour appeler les méthodes d’un client. Le gestionnaire de tables de routage exécute deux fonctions lorsqu’il arbitre entre les clients :

  • Empêcher le deuxième client d’appeler une méthode pour un client qui se désinscrit.
  • Conservation d’une demande « invoke » lorsque les méthodes sont bloquées et autorisation de la demande de continuer lorsque les méthodes sont débloquées.

Si un client doit empêcher d’autres clients d’exécuter ses méthodes, il peut appeler RtmBlockMethods. Le gestionnaire de tables de routage n’autorise pas le traitement d’un appel à RtmInvokeMethod tant que le client ne débloque pas à nouveau ses méthodes.

Les clients bloquent généralement les méthodes lors de l’apport de modifications aux données privées échangées entre les clients. Les méthodes bloquantes sont une action facultative. Un client peut également utiliser des verrous internes pour empêcher d’autres clients d’appeler des méthodes.

Pour obtenir un exemple de code montrant comment utiliser ces fonctions, consultez Obtenir et appeler les méthodes exportées pour un client.