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 |
---|---|
|
A chamada foi bem-sucedida. |
|
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. |
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 |