Usando métodos
Quando um cliente se registra no gerenciador de tabelas de roteamento, ele pode exportar um conjunto de métodos. Esses métodos são usados por outros clientes para obter informações específicas do cliente. Os métodos permitem a comunicação privada entre clientes do gerenciador de tabelas de roteamento.
Um cliente pode obter a lista de métodos exportados por outro cliente. O cliente chama a função RtmGetEntityMethods , fornecendo o identificador do cliente de destino.
Cada método exportado por um cliente é identificado exclusivamente por seu identificador de método. Cada cliente pode exportar até 32 métodos. Cada método corresponde a um conjunto de bits no membro MethodType da estrutura RTM_ENTITY_EXPORT_METHOD . Para invocar vários métodos, o cliente deve executar um OR lógico dos identificadores para esses métodos. A sintaxe e a semântica das estruturas de entrada e saída para cada protocolo devem ser especificadas quando o protocolo é implementado.
Observação
Os valores do identificador de método que correspondem a um bit definido na metade inferior do membro MethodType (os 16 bits inferiores) são reservados pela Microsoft.
Para invocar o método de um segundo cliente, um cliente chama a função RtmInvokeMethod . O gerenciador de tabelas de roteamento arbitra todas as solicitações para invocar os métodos de um cliente. O gerenciador de tabelas de roteamento executa duas funções quando arbitra entre clientes:
- Impedir que o segundo cliente invoque um método para um cliente que está cancelando o registro.
- Mantendo uma solicitação de "invocação" quando os métodos são bloqueados e permitindo que a solicitação continue quando os métodos são desbloqueados.
Se um cliente precisar impedir que outros clientes executem seus métodos, o cliente poderá chamar RtmBlockMethods. O gerenciador de tabelas de roteamento não permitirá que uma chamada para RtmInvokeMethod seja processada até que o cliente desbloqueie seus métodos novamente.
Normalmente, os clientes bloqueiam métodos ao fazer alterações nos dados privados que são trocados entre clientes. Os métodos de bloqueio são uma ação opcional. Um cliente também pode usar bloqueios internos para impedir que outros clientes invoquem métodos.
Para obter um código de exemplo que mostra como usar essas funções, consulte Obter e chamar os métodos exportados para um cliente.