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.

Nota Questa funzione non è supportata in Windows Vista e nei sistemi operativi successivi.
 

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
RPC_S_OK
La chiamata ha avuto esito positivo.
RPC_S_NO_MORE_BINDINGS
Nessuna associazione.
RPC_S_NAME_SERVICE_UNAVAILABLE
Il servizio dei nomi non è disponibile.
 
Nota Per un elenco di codici di errore validi, vedere Valori restituiti RPC.
 

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.

L'handle di associazione compatibile restituito contiene sempre un UUID dell'oggetto, il cui valore dipende dal parametro ObjUuid nella funzione RpcNsBindingImportBegin . Se è stato specificato un UUID oggetto non Null , l'handle di associazione restituito contiene l'UUID dell'oggetto. Se, tuttavia, è stato specificato un valore UUID o null di un oggetto Null, l'UUID dell'oggetto restituito è il risultato delle possibilità seguenti:
  • 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.
La funzione RpcNsBindingImportNext seleziona e restituisce un handle di associazione server dagli handle di associazione compatibili trovati. L'applicazione client può usare tale handle di associazione per tentare una chiamata di procedura remota al server. Se il client non riesce a stabilire una relazione con il server, può chiamare nuovamente RpcNsBindingImportNext .

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

Vedi anche

RpcBindingFree

RpcNsBindingImportBegin

RpcNsBindingImportDone

RpcNsBindingInqEntryName

RpcNsBindingLookupBegin

RpcNsBindingLookupDone

RpcNsBindingLookupNext

RpcNsBindingSelect