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.
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 |
---|---|
|
La llamada se realizó correctamente. |
|
No más enlaces. |
|
El nombre del servicio no está disponible. |
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.
- 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.
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 |