Condividi tramite


Funzione RpcBindingSetOption (rpcdce.h)

La funzione RpcBindingSetOption consente alle applicazioni client di specificare le opzioni di accodamento messaggi in un handle di associazione.

Sintassi

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

Parametri

hBinding

Associazione server da modificare.

option

Proprietà di associazione da modificare. Per un elenco delle opzioni di associazione e dei relativi valori possibili, vedere Costanti delle opzioni di associazione. Per informazioni sulla funzionalità di timeout delle chiamate RPC, vedere La sezione Osservazioni.

optionValue

Nuovo valore per la proprietà di associazione. Vedere la sezione Osservazioni.

Valore restituito

Valore Significato
RPC_S_OK
La chiamata ha avuto esito positivo.
RPC_S_CANNOT_SUPPORT
La funzione non è supportata per il sistema operativo o il trasporto. Si noti che la chiamata a RpcBindingSetOption per handle di associazione che usano qualsiasi sequenza di protocollo diversa da ncacn_* avrà esito negativo e restituirà questo valore.
 
Nota Per un elenco di codici di errore validi, vedere Valori restituiti RPC.
 

Commenti

I processi client RPC usano RpcBindingSetOption per controllare la qualità del servizio, la registrazione delle chiamate e la durata delle chiamate. La modifica delle proprietà dell'handle di associazione influirà su tutte le chiamate remote finché le proprietà non vengono modificate da un'altra chiamata a RpcBindingSetOption. È anche possibile chiamare RpcBindingSetAuthInfo per impostare le opzioni di sicurezza per l'handle di associazione.

Windows XP: Funzionalità di timeout chiamata RPC:

La chiamata alla funzione RpcBindingSetOption con Option impostata su RPC_C_OPT_CALL_TIMEOUT e OptionValue impostato sul valore di timeout (in millisecondi) consente agli sviluppatori di impostare un timeout del server RPC che impedisce che un thread diventi prigioniero in un server RPC non risponde. Questa funzionalità consente agli sviluppatori di annullare in modo esplicito una chiamata a un server RPC non risponde. Il monitoraggio del timer per il timeout viene reimpostato dal client RPC al ricevimento di ogni pacchetto. Se il timeout scade senza ricevere un pacchetto dal server, il client RPC restituisce RPC_S_CALL_CANCELLED. Si noti che il server RPC può comunque eseguire una chiamata, anche se il client eliminerà la risposta.

Impostare OptionValue su INFINITE o zero per un timeout infinito. Non modificare questa opzione da un altro thread mentre è in corso una chiamata. Non tentare di ripetere una chiamata annullata; in questo modo aumenta il carico sul server già non rispondente. La funzionalità di timeout delle chiamate RPC è utile solo per le chiamate RPC sincrone orientate alla connessione, ad esempio quelle effettuate in sequenze di protocollo ncacn_* . Per le chiamate RPC asincrone, asincrone o locali, questa opzione viene ignorata dal runtime RPC.

La funzionalità di timeout delle chiamate RPC è utile in molte situazioni, ad esempio gli aggiornamenti dell'interfaccia utente che altrimenti attendono che il server RPC occupato risponda (lasciando l'utente a guardare una clessidra) o quando molti server RPC possono soddisfare una richiesta, consentendo così ai client di identificare e ignorare più rapidamente i server non rispondenti.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione rpcdce.h (include Rpc.h)
Libreria Rpcrt4.lib
DLL Rpcrt4.dll

Vedi anche

Accodamento messaggi RPC

RpcBindingInqAuthClient

RpcBindingInqOption

RpcBindingSetAuthInfo

message