Funzione RpcNsBindingImportNext (rpcnsi.h)
La funzione RpcNsBindingImportNext cerca un'interfaccia (e facoltativamente un oggetto da un database name-service) e restituisce un handle di associazione di un server compatibile, se presente.
Sintassi
RPC_STATUS RpcNsBindingImportNext(
RPC_NS_HANDLE ImportContext,
RPC_BINDING_HANDLE *Binding
);
Parametri
ImportContext
Handle name-service restituito dalla funzione RpcNsBindingImportBegin .
Binding
Restituisce un puntatore a un handle di associazione server compatibile con il client per un server.
Valore restituito
Valore | Significato |
---|---|
|
La chiamata ha avuto esito positivo. |
|
Nessuna associazione. |
|
Il servizio dei nomi non è disponibile. |
Commenti
La funzione RpcNsBindingImportNext restituisce un handle di associazione server compatibile con il client per un server che offre l'UUID dell'interfaccia e dell'oggetto specificati dai parametri IfSpec e ObjUuid nella funzione RpcNsBindingImportBegin . La funzione comunica solo con il database name-service, non direttamente con i server.
A partire da Windows 2000, l'ambiente RPC usa Active Directory come database del servizio dei nomi e l'ordine in cui l'ambiente di runtime esegue la ricerca è il seguente:
- Cercare nella cache locale. Se non è presente alcuna voce,
- Cercare in Active Directory. Se non è presente alcuna voce,
- Inviare richieste di trasmissione a tutti gli altri servizi directory nel dominio.
Si noti che se la voce esiste in Active Directory, ma non sono presenti informazioni associate alla voce, l'ambiente di runtime non invia questa richiesta di trasmissione.
- Se il server non esporta alcun UUID oggetto, l'handle di associazione restituito contiene un UUID dell'oggetto nil.
- Se il server ha esportato un UUID oggetto, l'handle di associazione restituito contiene l'UUID dell'oggetto.
- Se il server ha esportato più UUID oggetto, l'handle di associazione restituito contiene uno degli UUID dell'oggetto. L'operazione import-next seleziona l'UUID dell'oggetto restituito in modo non deterministico. Di conseguenza, è possibile restituire un UUID di oggetto diverso per ogni handle di associazione compatibile da una voce a server singolo.
Ogni volta che il client chiama RpcNsBindingImportNext, la funzione restituisce un altro handle di associazione server. Gli handle di associazione restituiti non sono ordinati. Un'applicazione client chiama la funzione RpcNsBindingInqEntryName per ottenere il database name-service nel nome della voce da cui proviene l'handle di associazione. Quando la ricerca raggiunge la fine del database name-service, RpcNsBindingInqEntryName restituisce lo stato RPC_S_NO_MORE_BINDINGS e restituisce un valore del parametro di associazione NULL.
La funzione RpcNsBindingImportNext alloca l'archiviazione per i dati a cui fa riferimento il parametro Binding restituito. Quando un'applicazione client termina con l'handle di associazione, deve chiamare RpcBindingFree per deallocare l'archiviazione. Ogni chiamata a RpcNsBindingImportNext richiede una chiamata corrispondente a RpcBindingFree.
Il client è responsabile della chiamata della funzione RpcNsBindingImportDone , che elimina il contesto di importazione. Il client chiama anche RpcNsBindingImportDone prima di chiamare RpcNsBindingImportBegin per avviare una nuova ricerca di server compatibili. Poiché l'ordine degli handle di associazione restituiti è diverso per ogni nuova ricerca, l'ordine in cui gli handle di associazione vengono restituiti a un'applicazione può essere diverso ogni volta che viene eseguita l'applicazione.
Requisiti
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | rpcnsi.h (include Rpc.h) |
Libreria | Rpcns4.lib |
DLL | Rpcns4.dll |