Identificadores de associação explícitos

Para obter o controle máximo sobre o processo de associação, os aplicativos cliente/servidor podem usar identificadores de associação explícitos. Como identificadores implícitos, os identificadores de associação explícitos permitem que seu aplicativo cliente selecione um servidor para executar suas chamadas. Além disso, os identificadores de associação explícitos permitem que seu aplicativo cliente/servidor crie uma sessão de comunicação RPC autenticada. Com identificadores explícitos, seu cliente pode se conectar a mais de um servidor e executar procedimentos remotos em vários servidores. Aplicativos cliente multithread e assíncronos podem até mesmo se conectar a vários servidores e executar vários procedimentos remotos ao mesmo tempo.

Seu aplicativo cliente deve passar o identificador explícito como um parâmetro para cada chamada de procedimento remoto. Para estar em conformidade com o padrão OSF, o identificador deve ser especificado como o primeiro parâmetro em cada procedimento remoto. No entanto, as extensões da Microsoft para RPC permitem que você especifique o identificador de associação em outras posições. Para obter mais informações, consulte Extensões de Binding-Handle do Microsoft RPC.

Para criar um identificador explícito, declare o identificador como um parâmetro para as operações remotas no arquivo IDL. O exemplo Olá, Mundo pode ser redefinido para usar um identificador explícito, conforme mostrado:

/* IDL file for explicit handles */
 
[ 
  uuid(20B309B1-015C-101A-B308-02608C4C9B53),
  version(1.0) 
]
interface hello
{
  void HelloProc([in] handle_t h1,
                 [in, string] char *  pszString); 
}

Você pode combinar identificadores explícitos e implícitos em uma única interface. Se uma função tiver um identificador explícito em sua lista de parâmetros, esse identificador será usado. Se uma função em uma interface usando identificadores implícitos não especificar um identificador explícito, o identificador implícito padrão será usado.