Funzione RpcNsBindingUnexportA (rpcnsi.h)

La funzione RpcNsBindingUnexport rimuove gli handle di associazione per un'interfaccia e gli oggetti da una voce nel database name-service.

Nota Questa funzione non è supportata nei sistemi operativi Windows Vista e versioni successive.
 

Sintassi

RPC_STATUS RpcNsBindingUnexportA(
  unsigned long EntryNameSyntax,
  RPC_CSTR      EntryName,
  RPC_IF_HANDLE IfSpec,
  UUID_VECTOR   *ObjectUuidVec
);

Parametri

EntryNameSyntax

Sintassi di EntryName.

Per usare la sintassi specificata nella voce del valore del Registro di sistema HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NameService\DefaultSyntax, specificare un valore di RPC_C_NS_SYNTAX_DEFAULT.

EntryName

Puntatore al nome della voce da cui rimuovere handle di associazione e UUID oggetto.

IfSpec

Specifica dell'interfaccia per gli handle di associazione da rimuovere dal database del servizio dei nomi. Un valore di parametro Null indica che non è possibile annullare eventuali handle di associazione (solo gli UUID dell'oggetto devono essere non visualizzati).

ObjectUuidVec

Puntatore a un vettore di UUID oggetto che il server non vuole più offrire. L'applicazione costruisce questo vettore. Un valore Null indica che non sono presenti UUID oggetto da annullare (solo gli handle di associazione devono essere non visualizzati).

Valore restituito

Valore Significato
RPC_S_OK
La chiamata ha avuto esito positivo.
RPC_S_INVALID_VERS_OPTION
L'opzione versione non è valida.
RPC_S_INVALID_NAME_SYNTAX
La sintassi del nome non è valida.
RPC_S_UNSUPPORTED_NAME_SYNTAX
La sintassi del nome non è supportata.
RPC_S_INCOMPLETE_NAME
Il nome è incompleto.
RPC_S_ENTRY_NOT_FOUND
Non è stata trovata la voce nome-servizio.
RPC_S_NAME_SERVICE_UNAVAILABLE
Il servizio nome non è disponibile.
RPC_S_INTERFACE_NOT_FOUND
L'interfaccia non è stata trovata.
RPC_S_NOT_ALL_OBJS_UNEXPORTED
Non tutti gli oggetti non visualizzati.
 
Nota Per un elenco di codici di errore validi, vedere Valori restituiti RPC.
 

Commenti

La funzione RpcNsBindingUnexport consente a un'applicazione server di rimuovere gli handle di associazione e gli UUID di oggetti delle risorse da una voce del database del servizio nome. Un'applicazione server può annullare l'interfaccia e gli oggetti specificati in una singola chiamata a RpcNsBindingUnexport oppure può annullarle separatamente. Solo gli handle di associazione che corrispondono all'UUID dell'interfaccia e ai numeri di versione principali e secondari trovati nel parametro IfSpec non vengono visualizzati. Usare la funzione RpcNsMgmtBindingUnexport per rimuovere più versioni di un'interfaccia.

Efficace con Windows 2000, l'ambiente di runtime RPC usa Active Directory come database name-service. Ciò significa che le voci non esportate autorizzate verranno rimosse dalla cache locale e da Active Directory. I non autorizzati non autorizzati verranno rimossi solo dalla cache locale. Per altre informazioni sull'autorizzazione e sull'Controllo di accesso Elenchi, vedere Controllo di accesso nella sezione Sicurezza di Platform Software Development Kit (SDK).

Se RpcNsBindingUnexport non trova alcun handle di associazione per l'interfaccia specificata, la funzione restituisce un codice di stato RPC_S_INTERFACE_NOT_FOUND e non annulla l'exportazione degli UUID dell'oggetto, se specificato.

Se vengono trovati uno o più handle di associazione per l'interfaccia specificata e non vengono visualizzati senza errori, RpcNsBindingUnexport unexports dell'oggetto specificato, se presente.

Se uno degli UUID dell'oggetto specificato non è stato trovato, RpcNsBindingUnexport restituisce il codice di stato RPC_S_NOT_ALL_OBJS_UNEXPORTED.

Oltre a chiamare RpcNsBindingUnexport, un server deve anche chiamare la funzione RpcEpUnregister per annullare la registrazione degli endpoint registrati in precedenza con il database del mapping dell'endpoint locale.

Una volta creata, una voce del server persiste, anche quando vengono rimossi tutti gli handle di associazione e gli UUID. Una voce del server deve avere almeno un handle di associazione da esistere. Di conseguenza, l'esportazione di solo UUID in una voce non existing non ha alcun effetto e l'esportazione di tutti gli handle di associazione elimina la voce.

Usare RpcNsBindingUnexport judiciously . Per mantenere disponibile un server attivato automaticamente, è necessario lasciare i relativi handle di associazione nel database nome-servizio tra i tempi in cui vengono attivati i processi del server. Tuttavia, con associazioni dinamiche, se non si annullano gli handle di associazione, Active Directory può diventare così grande come non gestibile.

Pertanto, prima di chiamare questa funzione, tenere presente quanto tempo si prevede che il server non sia disponibile e il tipo di associazione in uso. Se si usano associazioni statiche, riservare questa funzione per quando si prevede che un server non sia disponibile per un periodo di tempo esteso, ad esempio quando viene rimosso definitivamente dal servizio.

Nota I database del servizio nome sono progettati per essere relativamente stabili. Nei database name-service replicati, l'uso frequente delle funzioni RpcNsBindingExport e RpcNsBindingUnexport causa la rimozione ripetuta del database name-service e la sostituzione della stessa voce e può causare problemi di prestazioni.
 

Nota

L'intestazione rpcnsi.h definisce RpcNsBindingUnexport come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

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 rpcnsi.h (include Rpc.h)
Libreria Rpcns4.lib
DLL Rpcns4.dll

Vedi anche

RpcEpUnregister

RpcNsBindingExport