Condividi tramite


RPC_BINDING_HANDLE

Il tipo di dati RPC_BINDING_HANDLE dichiara un handle di associazione contenente informazioni usate dalla libreria di runtime RPC per accedere alle informazioni di associazione.

typedef I_RPC_HANDLE RPC_BINDING_HANDLE;

Commenti

La libreria di runtime usa le informazioni di associazione per stabilire una relazione client-server che consente l'esecuzione di chiamate di routine remote. In base al contesto in cui viene creato un handle di associazione, viene considerato un handle di associazione server o un handle di associazione client.

Un handle di associazione server contiene le informazioni necessarie per un client per stabilire una relazione con un server specifico. Qualsiasi numero di routine di runtime dell'API RPC restituisce un handle di associazione server che può essere usato per eseguire una chiamata di routine remota.

Non è possibile usare un handle di associazione client per eseguire una chiamata di procedura remota. La libreria di runtime RPC crea e fornisce un handle di associazione client a una routine denominata server (chiamata anche routine server-manager) come parametro RPC_BINDING_HANDLE. L'handle di associazione client contiene informazioni sul client chiamante.

Le funzioni RpcBinding* e RpcNsBinding* restituiscono il codice di stato RPC_S_WRONG_KIND_OF_BINDING quando un'applicazione fornisce il tipo di handle di associazione non corretto.

Un'applicazione può condividere un singolo handle di associazione tra più thread di esecuzione. La libreria di runtime RPC gestisce chiamate di routine remote simultanee che usano un singolo handle di associazione. Tuttavia, l'applicazione è responsabile del controllo di concorrenza dell'associazione per le operazioni che modificano un handle di associazione. Queste operazioni includono le routine seguenti:

Ad esempio, se un'applicazione condivide un handle di associazione tra due thread di esecuzione e reimposta l'endpoint di handle di associazione in uno dei thread chiamando RpcBindingReset, i risultati non sono definiti. L'handle di associazione nell'altro thread può anche essere reimpostato o l'operazione potrebbe non riuscire o il processo potrebbe verificarsi un arresto anomalo. Un errore comune libera un handle di associazione mentre una chiamata è in corso; in genere si arresta in modo anomalo il processo di chiamata.

Se non si vuole la concorrenza, è possibile progettare un'applicazione per creare una copia di un handle di associazione chiamando RpcBindingCopy. In questo caso, un'operazione al primo handle di associazione non ha alcun effetto sul secondo handle di associazione.

Le routine che richiedono un handle di associazione come parametro mostrano un tipo di dati di RPC_BINDING_HANDLE. I parametri di handle di associazione vengono passati per valore.

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Rpcdce.h (include Rpc.h)