Función RpcNsBindingImportNext (rpcnsi.h)

La función RpcNsBindingImportNext busca una interfaz (y, opcionalmente, un objeto de una base de datos de servicio de nombres) y devuelve un identificador de enlace de un servidor compatible, si se encuentra.

Nota Esta función no se admite en Windows Vista ni en sistemas operativos posteriores.
 

Sintaxis

RPC_STATUS RpcNsBindingImportNext(
  RPC_NS_HANDLE      ImportContext,
  RPC_BINDING_HANDLE *Binding
);

Parámetros

ImportContext

Identificador de servicio de nombre devuelto de la función RpcNsBindingImportBegin .

Binding

Devuelve un puntero a un identificador de enlace de servidor compatible con el cliente para un servidor.

Valor devuelto

Valor Significado
RPC_S_OK
La llamada se realizó correctamente.
RPC_S_NO_MORE_BINDINGS
No más enlaces.
RPC_S_NAME_SERVICE_UNAVAILABLE
El nombre del servicio no está disponible.
 
Nota Para obtener una lista de códigos de error válidos, consulte Rpc Return Values.
 

Comentarios

La función RpcNsBindingImportNext devuelve un identificador de enlace de servidor compatible con el cliente para un servidor que ofrece la interfaz y el UUID de objeto especificados por los parámetros IfSpec y ObjUuid en la función RpcNsBindingImportBegin . La función solo se comunica con la base de datos name-service, no directamente con los servidores.

Efectivo con Windows 2000, el entorno RPC usa Active Directory como su base de datos name-service y el orden en el que el entorno en tiempo de ejecución realiza la búsqueda es el siguiente:

  • Busque en la caché local. Si no hay ninguna entrada,
  • Busque en Active Directory. Si no hay ninguna entrada,
  • Enviar solicitudes de difusión a todos los demás servicios de directorio del dominio.

    Tenga en cuenta que si la entrada existe en Active Directory, pero no hay información asociada a la entrada, el entorno en tiempo de ejecución no emite esta solicitud de difusión.

El identificador de enlace compatible que se devuelve siempre contiene un UUID de objeto, cuyo valor depende del parámetro ObjUuid en la función RpcNsBindingImportBegin . Si se especificó un UUID de objeto no null , el identificador de enlace devuelto contiene ese UUID de objeto. Sin embargo, si se especificó un UUID de objeto null o un valor null , el UUID de objeto que se devuelve es el resultado de las siguientes posibilidades:
  • Si el servidor no exportó ningún UUID de objeto, el identificador de enlace devuelto contiene un UUID de objeto nulo.
  • Si el servidor exportó un UUID de objeto, el identificador de enlace devuelto contiene ese UUID de objeto.
  • Si el servidor exportó varios UUID de objeto, el identificador de enlace devuelto contiene uno de los UUID de objeto. La operación import-next selecciona el UUID de objeto devuelto de forma no determinista. Como resultado, se puede devolver un UUID de objeto diferente para cada identificador de enlace compatible desde una única entrada de servidor.
La función RpcNsBindingImportNext selecciona y devuelve un identificador de enlace de servidor de los identificadores de enlace compatibles encontrados. La aplicación cliente puede usar ese identificador de enlace para intentar una llamada a procedimiento remoto al servidor. Si el cliente no puede establecer una relación con el servidor, puede llamar a RpcNsBindingImportNext de nuevo.

Cada vez que el cliente llama a RpcNsBindingImportNext, la función devuelve otro identificador de enlace de servidor. Los identificadores de enlace devueltos no están ordenados. Una aplicación cliente llama a la función RpcNsBindingInqEntryName para obtener la base de datos name-service en el nombre de entrada desde el que vino el identificador de enlace. Cuando la búsqueda llega al final de la base de datos name-service, RpcNsBindingInqEntryName devuelve un estado de RPC_S_NO_MORE_BINDINGS y devuelve un valor de parámetro de enlace de NULL.

La función RpcNsBindingImportNext asigna almacenamiento para los datos a los que hace referencia el parámetro Binding devuelto. Cuando una aplicación cliente finaliza con el identificador de enlace, debe llamar a RpcBindingFree para desasignar el almacenamiento. Cada llamada a RpcNsBindingImportNext requiere una llamada correspondiente a RpcBindingFree.

El cliente es responsable de llamar a la función RpcNsBindingImportDone , que elimina el contexto de importación. El cliente también llama a RpcNsBindingImportDone antes de llamar a RpcNsBindingImportBegin para iniciar una nueva búsqueda de servidores compatibles. Dado que el orden de los identificadores de enlace devueltos es diferente para cada nueva búsqueda, el orden en que se devuelven los identificadores de enlace a una aplicación puede ser diferente cada vez que se ejecuta la aplicación.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado rpcnsi.h (incluir Rpc.h)
Library Rpcns4.lib
Archivo DLL Rpcns4.dll

Consulte también

RpcBindingFree

RpcNsBindingImportBegin

RpcNsBindingImportDone

RpcNsBindingInqEntryName

RpcNsBindingLookupBegin

RpcNsBindingLookupDone

RpcNsBindingLookupNext

RpcNsBindingSelect