Funzione RpcEpRegister (rpcdce.h)
La funzione RpcEpRegister aggiunge o sostituisce le informazioni sull'indirizzo del server nel database della mappa degli endpoint locale.
Sintassi
RPC_STATUS RpcEpRegister(
RPC_IF_HANDLE IfSpec,
RPC_BINDING_VECTOR *BindingVector,
UUID_VECTOR *UuidVector,
RPC_CSTR Annotation
);
Parametri
IfSpec
Interfaccia da registrare con il database di mapping dell'endpoint locale.
BindingVector
Puntatore a un vettore di handle di associazione su cui il server può ricevere chiamate di routine remote.
UuidVector
Puntatore a un vettore di UUID oggetto offerto dal server. L'applicazione server costruisce questo vettore. Un valore di argomento Null indica che non sono presenti UUID oggetto da registrare.
Annotation
Puntatore al commento della stringa di caratteri applicato a ogni elemento cross-product aggiunto al database della mappa degli endpoint locale. La stringa può essere fino a 64 caratteri lunghi, incluso il carattere di terminazione Null. Specificare un valore Null o una stringa con terminazione null ("\0") se non esiste alcuna stringa di annotazione.
La stringa di annotazione viene usata solo dalle applicazioni per informazioni. RPC non usa questa stringa per determinare l'istanza del server con cui un client comunica o per enumerare gli elementi nel database della mappa degli endpoint.
Valore restituito
Valore | Significato |
---|---|
|
La chiamata ha avuto esito positivo. |
|
Nessun binding. |
|
L'handle di associazione non è valido. |
|
Questo è stato il tipo di associazione sbagliato per l'operazione. |
Commenti
La funzione RpcEpRegister aggiunge o sostituisce le voci nel database del mapping degli endpoint dell'host locale. Per una voce di database esistente corrispondente alla specifica dell'interfaccia, all'handle di associazione e all'UUID dell'oggetto, questa funzione sostituisce l'endpoint della voce con l'endpoint nell'handle di associazione fornito.
Un server può usare RpcEpRegister e RpcEpRegisterNoReplace per registrare le voci nel database endpoint mapper. In precedenza a Windows 2000, due funzioni erano disponibili per consentire a un server di sovrascrivere le voci non aggiornate nel database endpoint mapper lasciato dalle istanze del server precedenti che non sono più in esecuzione. Il database del mapper endpoint rimuove automaticamente le voci registrate da un'istanza del server non appena il server smette di funzionare. Tuttavia, i server non possono sostituire le voci del mapper endpoint di un altro server a scopo di sicurezza. Pertanto, RpcEpRegister e RpcEpRegisterNoReplace eseguono in gran parte la stessa funzionalità.
Un'applicazione server chiama RpcEpRegister per registrare gli endpoint specificati chiamando una delle funzioni seguenti:
- RpcServerUseAllProtseqs
- RpcServerUseProtseq
- RpcServerUseProtseqEp
- RpcServerUseAllProtseqsIf
- RpcServerUseProtseqIf
Se viene usata una sequenza di protocolli senza specificare un endpoint, la libreria di runtime RPC genera automaticamente un endpoint dinamico. In questo caso, il server può chiamare RpcServerInqBindings seguito da RpcEpRegister per renderlo disponibile per più client. In caso contrario, il server avviato automaticamente è noto solo al client per cui è stato avviato il server. Ogni elemento aggiunto al database della mappa endpoint contiene logicamente quanto segue:
- UUID dell'interfaccia
- Versione dell'interfaccia (principale e secondaria)
- Handle di associazione
- Oggetto UUID (facoltativo)
- Annotazione (facoltativo)
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | rpcdce.h (include Rpc.h) |
Libreria | Rpcrt4.lib |
DLL | Rpcrt4.dll |