Compartilhar via


Função RpcBindingSetOption (rpcdce.h)

A função RpcBindingSetOption permite que os aplicativos cliente especifiquem opções de enfileiramento de mensagens em um identificador de associação.

Sintaxe

RPC_STATUS RpcBindingSetOption(
  RPC_BINDING_HANDLE hBinding,
  unsigned long      option,
  ULONG_PTR          optionValue
);

Parâmetros

hBinding

Associação de servidor a ser modificada.

option

Propriedade binding a ser modificada. Para obter uma lista de opções de associação e seus valores possíveis, consulte Constantes de opção de associação. Consulte Comentários para obter informações sobre o recurso de tempo limite de chamada RPC.

optionValue

Novo valor para a propriedade de associação. Consulte Observações.

Valor retornado

Valor Significado
RPC_S_OK
A chamada foi bem-sucedida.
RPC_S_CANNOT_SUPPORT
Não há suporte para a função para o sistema operacional ou o transporte. Observe que chamar RpcBindingSetOption em identificadores de associação que usam qualquer sequência de protocolo diferente de ncacn_* falhará e retornará esse valor.
 
Nota Para obter uma lista de códigos de erro válidos, consulte RPC Return Values.
 

Comentários

Os processos de cliente RPC usam RpcBindingSetOption para controlar a qualidade de serviço de entrega, o registro em log de chamadas e os tempos de vida das chamadas. A alteração das propriedades do identificador de associação afetará todas as chamadas remotas até que as propriedades sejam alteradas por outra chamada para RpcBindingSetOption. Você também pode chamar RpcBindingSetAuthInfo para definir opções de segurança para o identificador de associação.

Windows XP: Recurso tempo limite de chamada RPC:

Chamar a função RpcBindingSetOption com Option definido como RPC_C_OPT_CALL_TIMEOUT e OptionValue definido como o valor de tempo limite (em milissegundos) permite que os desenvolvedores definam um tempo limite RPC-server que impede que um thread se torne cativo para um servidor RPC sem resposta. Esse recurso salva os desenvolvedores de cancelar explicitamente uma chamada para um servidor RPC sem resposta. O monitoramento do temporizador para tempo limite é redefinido pelo cliente RPC após o recebimento de cada pacote. Se o tempo limite expirar sem receber um pacote do servidor, o cliente RPC retornará RPC_S_CALL_CANCELLED. Observe que o servidor RPC ainda pode executar uma chamada, mesmo que o cliente descarte a resposta.

Defina OptionValue como INFINITE ou zero para um tempo limite infinito. Não altere essa opção de outro thread enquanto uma chamada estiver em andamento. Não tente repetir uma chamada cancelada; fazer isso aumenta a carga no servidor que já não responde. O recurso de tempo limite de chamada RPC só é útil para chamadas RPC síncronas orientadas à conexão, como aquelas feitas em sequências de protocolo ncacn_* . Para chamadas RPC locais, assíncronas ou de datagrama, essa opção é ignorada pelo tempo de execução do RPC.

O recurso de tempo limite de chamada RPC é útil em muitas situações, como atualizações de interface do usuário que, de outra forma, esperariam que o servidor RPC ocupado respondesse (deixando o usuário assistindo a uma ampulheta) ou quando muitos servidores RPC podem atender a uma solicitação, permitindo assim que os clientes identifiquem e ignorem servidores sem resposta mais rapidamente.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho rpcdce.h (inclua Rpc.h)
Biblioteca Rpcrt4.lib
DLL Rpcrt4.dll

Confira também

Enfileiramento de mensagens RPC

RpcBindingInqAuthClient

RpcBindingInqOption

RpcBindingSetAuthInfo

message