Constantes de opção de associação

Os aplicativos definem as constantes de opção de associação para controlar como a biblioteca de tempo de execução RPC processa chamadas de procedimento remoto. A tabela a seguir lista cada propriedade de associação e os valores constantes relevantes para as propriedades de associação.

Observação

Todas as opções de fila de mensagens (MQ) na tabela a seguir são válidas apenas para o Windows 2000. O Windows XP e versões posteriores não dão suporte ao enfileiramento de mensagens. Os desenvolvedores são desencorajados a usar o enfileiramento de mensagens.

Constante/valor Descrição
RPC_C_OPT_BINDING_NONCAUSAL
9
Padrão. Se FALSE, ordenação de chamada causal. As chamadas RPC são executadas em ordem estrita de envio. Consulte Observações.
Se TRUE, ordenação de chamada nãocausal. As chamadas RPC são executadas de forma independente. Consulte Observações.
RPC_C_OPT_MAX_OPTIONS
17
Não é necessário para programas de aplicativo. Usado internamente pela Microsoft.
RPC_C_DONT_FAIL
4
Não é necessário para programas de aplicativo. Usado internamente pela Microsoft.
RPC_C_OPT_SESSION_ID
6
Se TRUE, uma ID de sessão será gerada para cada conexão.
RPC_C_OPT_COOKIE_AUTH
7
Se TRUE, a autenticação baseada em cookie do lado do cliente será usada para conexões. Um ponteiro para a estrutura RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR é passado como o parâmetro OptionValue em RpcBindingSetOption.
RPC_C_OPT_RESOURCE_TYPE_UUID
8
Não é necessário para programas de aplicativo. Usado internamente pela Microsoft.
RPC_C_OPT_DONT_LINGER
13
Se TRUE, force o desligamento da associação depois que o último identificador de identificador/contexto de associação nele for liberado.
RPC_C_OPT_UNIQUE_BINDING
11
Quando definido como true, o RPC não reutiliza as conexões existentes. Um identificador de associação exclusivo é aberto para cada conexão e o estado é mantido para cada identificador de associação exclusivo.

Comentários

Por padrão, a biblioteca de tempo de execução RPC executa as chamadas em um determinado identificador de associação de cada thread de um aplicativo em ordem estrita de envio. Isso não garante que chamadas de threads diferentes no mesmo identificador de associação sejam serializadas. Aplicativos multithread devem serializar suas chamadas RPC. Se esse comportamento for muito restritivo, você poderá habilitar a ordenação nãocausal. Quando você faz isso, a biblioteca de tempo de execução RPC executa chamadas de forma independente. Ele não impõe nenhuma ordenação em seu envio.

Um exemplo de um aplicativo que pode achar útil a ordenação nãocausal é um programa multithread cujos threads fazem chamadas no mesmo identificador de associação. Da mesma forma, um programa que usa várias chamadas assíncronas em um identificador de associação encontrará uma opção conveniente de ordenação nãocausal. Outro exemplo pode ser um programa de proxy da Internet que usa um único thread para lidar com solicitações para vários clientes. Em cada um desses casos, seria extremamente restritivo tentar serializar as chamadas de procedimento remoto.

A opção RPC_C_OPT_DONT_LINGER pode ser definida somente em identificadores de associação que usam as sequências de protocolo ncalrpc ou ncacn_* . Ele não pode ser usado em sequências de protocolo ncadg_* . A função RpcBindingSetOption com essa opção deve ser chamada em um identificador de associação no qual pelo menos uma chamada RPC foi feita. Se nenhuma chamada RPC tiver sido feita no identificador de associação, RPC_S_WRONG_KIND_OF_BINDING será retornado da chamada da função RpcBindingSetOption . A opção entra em vigor para toda a associação, independentemente de quantos identificadores de associação estão anexados à associação. Como ela é verificada antes que a associação seja destruída, ela pode ser definida a qualquer momento antes que o identificador de associação seja fechado.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Rpcdce.h;
Rpcdcep.h

Confira também

RpcBindingSetOption

RpcBindingInqOption

Gerenciando conjuntos de conexões de rede (associações)