Condividi tramite


Funzione RpcServerInqCallAttributesA (rpcasync.h)

La funzione RpcServerInqCallAttributes è una chiamata al server RPC che ottiene gli attributi del contesto di sicurezza client.

Sintassi

RPC_STATUS RpcServerInqCallAttributesA(
  [in]      RPC_BINDING_HANDLE ClientBinding,
  [in, out] void               *RpcCallAttributes
);

Parametri

[in] ClientBinding

Opzionale. Per l'associazione esplicita all'interno di una routine del server, ClientBinding è l'handle di associazione con cui è stata chiamata la routine di gestione. Vedere la sezione Osservazioni.

[in, out] RpcCallAttributes

RPC_CALL_ATTRIBUTES_V2 struttura che riceve gli attributi di chiamata.

Valore restituito

Restituisce RPC_S_OK in caso di esito positivo e viene compilato RpcCallAttributes. Se viene restituito ERROR_MORE_DATA, uno o più campi in RpcCallAttributes di lunghezza insufficiente e non è stato possibile compilare. Per informazioni dettagliate sulla gestione delle ERROR_MORE_DATA, vedere osservazioni in RPC_CALL_ATTRIBUTES_V2.

In caso di errore, il contenuto di RpcCallAttributes non è definito e può essere parzialmente modificato da RPC.

Nota Per un elenco di codici di errore validi, vedere RPC Return Values.
 

Osservazioni

La funzione rpcServerInqCallAttributes usa uno schema di controllo delle versioni per incorporare nuove funzionalità senza dover introdurre nuove funzioni con identificatori di suffisso. Ad esempio, una seconda versione del RPC_CALL_ATTRIBUTES_V2, identificata con una semplice #define nell'intestazione, può aggiungere nuovi membri per facilitare nuove funzionalità integrate in versioni future della funzione RpcServerInqCallAttributes, senza dover rilasciare una funzione denominata RpcServerInqCallAttributesEx.

Se la funzione RpcServerInqCallAttributes viene chiamata all'esterno di una routine del server e se la chiamata di funzione esegue una query sugli attributi del contesto di sicurezza per una chiamata RPC asincrona, è possibile recuperare ClientBinding chiamando la funzione RpcAsyncGetCallHand le dall'handle asincrono.

La funzione rpcServerInqCallAttributes non è supportata per le sequenze di protocollo del datagram, ad esempio ncadg_*. Se richiamato su una chiamata eseguita su una sequenza di protocollo del datagram, viene restituito RPC_S_CANNOT_SUPPORT.

La funzione rpcServerInqCallAttributes è thread-safe.

Esempi

RPC_CALL_ATTRIBUTES CallAttributes;  // this maps to RPC_CALL_ATTRIBUTES_V1

memset(&CallAttributes, 0, sizeof(CallAttributes));
CallAttributes.Version = RPC_CALL_ATTRIBUTES_VERSION;    // maps to 1
CallAttributes.Flags = ;//....
Status = RpcServerInqCallAttributes(0, &ClientContextAttributes);

Nota

L'intestazione rpcasync.h definisce RpcServerInqCallAttributes come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows XP [solo app desktop]
server minimo supportato Windows Server 2003 [solo app desktop]
piattaforma di destinazione Finestre
intestazione rpcasync.h (include Rpc.h)
libreria Rpcrt4.lib
dll Rpcrt4.dll

Vedere anche

RPC_CALL_ATTRIBUTES_V2

rpcAsyncGetCallHandle