Compartir a través de


Función RpcNsBindingExportA (rpcnsi.h)

La función RpcNsBindingExport establece una entrada de base de datos de servicio de nombre con varios identificadores de enlace y varios objetos para un servidor.

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

Sintaxis

RPC_STATUS RpcNsBindingExportA(
  unsigned long      EntryNameSyntax,
  RPC_CSTR           EntryName,
  RPC_IF_HANDLE      IfSpec,
  RPC_BINDING_VECTOR *BindingVec,
  UUID_VECTOR        *ObjectUuidVec
);

Parámetros

EntryNameSyntax

Sintaxis de EntryName.

Para usar la sintaxis especificada en la entrada de valor del Registro HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NameService\DefaultSyntax, proporcione un valor de RPC_C_NS_SYNTAX_DEFAULT.

EntryName

Puntero al nombre de entrada al que se exportan los identificadores de enlace y los UUID de objeto. No se puede proporcionar una cadena nula o vacía. El cliente y el servidor deben usar el mismo nombre de entrada.

IfSpec

Estructura de datos generada por código auxiliar que especifica la interfaz que se va a exportar. Un valor NULL indica que no hay identificadores de enlace para exportar (solo se van a exportar LOS UUID de objeto) y se omite BindingVec.

BindingVec

Puntero a enlaces de servidor que se van a exportar. Un valor NULL indica que no hay identificadores de enlace para exportar (solo se exportarán los UUID de objeto).

ObjectUuidVec

Puntero a un vector de UUID de objeto ofrecidos por el servidor. La aplicación de servidor construye este vector. Un valor NULL indica que no hay uuID de objeto que se van a exportar (solo se exportarán los identificadores de enlace).

Valor devuelto

Valor Significado
RPC_S_OK
La llamada se realizó correctamente.
RPC_S_NOTHING_TO_EXPORT
No había nada que exportar.
RPC_S_INVALID_BINDING
El identificador de enlace no era válido.
RPC_S_WRONG_KIND_OF_BINDING
Este era el tipo incorrecto de enlace para la operación.
RPC_S_INVALID_NAME_SYNTAX
La sintaxis de nombre no es válida.
RPC_S_UNSUPPORTED_NAME_SYNTAX
No se admite la sintaxis de nombre.
RPC_S_INCOMPLETE_NAME
El nombre está incompleto.
RPC_S_NO_NS_PRIVILEGE
Sin privilegios para la operación de servicio de nombres.
RPC_S_NAME_SERVICE_UNAVAILABLE
El servicio de nombre no está disponible.
 
Nota Para obtener una lista de códigos de error válidos, vea rpc Return Values.
 

Observaciones

La función de RpcNsBindingExport de permite a una aplicación de servidor ofrecer públicamente una interfaz en la base de datos name-service para su uso por cualquier aplicación cliente.

Efectivo con Windows 2000, el entorno en tiempo de ejecución de RPC usa Active Directory como su base de datos de nombre-servicio. Esto significa que las entradas exportadas autorizadas persisten en el servicio de nombres y son visibles incluso después del reinicio. Las exportaciones no autorizadas no se conservan. Consulte access Control en la sección Seguridad del Kit de desarrollo de software de plataforma (SDK) para obtener más información sobre las listas de autorización y control de acceso.

Para exportar una interfaz, la aplicación de servidor llama a la RpcNsBindingExport rutina con una interfaz y el enlace de servidor controla que un cliente pueda usar para acceder al servidor. Una aplicación de servidor también llama a la función RpcNsBindingExport para ofrecer públicamente el UUID de objeto de los recursos que ofrece, si existe, en la base de datos name-service.

Un servidor puede exportar interfaces y objetos en una sola llamada a RpcNsBindingExport, o puede exportarlas por separado. Si no existe la entrada de base de datos name-service especificada por EntryName, RpcNsBindingExport intenta crearla. En este caso, la aplicación de servidor debe tener el privilegio de crear la entrada. Además de llamar a RpcNsBindingExport, un servidor que llamó a la RpcServerUseAllProtseqs o función RpcServerUseProtseq también debe registrarse con la base de datos local de mapa de puntos de conexión llamando a RpcEpRegister o RpcEpRegisterNoReplace.

No es necesario que un servidor exporte ninguna de sus interfaces a la base de datos name-service. Cuando un servidor no exporta, solo los clientes que saben de forma privada que la información de enlace del servidor puede acceder a sus interfaces. Por ejemplo, un cliente que tiene la información necesaria para construir un enlace de cadena puede llamar a la RpcBindingFromStringBinding para crear un identificador de enlace para realizar llamadas de procedimiento remoto a un servidor.

Antes de llamar a RpcNsBindingExport, un servidor debe hacer lo siguiente:

El vector devuelto de la función RpcServerInqBindings de se convierte en el parámetro binding para RpcNsBindingExport. Para evitar que se exporte un enlace, establezca el elemento vector seleccionado en un valor NULL.

Si un servidor exporta a la misma entrada de base de datos de nombre-servicio varias veces, la segunda y las llamadas posteriores a RpcNsBindingExport agregar la información de enlace y los UUID de objeto cuando esos datos son diferentes de la información de enlace que ya está en la entrada del servidor. Los datos existentes no se quitan de la entrada.

Para quitar identificadores de enlace y UUID de objeto de la base de datos name-service, una aplicación de servidor llama a la función de rpcNsBindingUnexport .

Una entrada de servidor debe tener al menos un identificador de enlace para existir. Como resultado, la exportación de solo UUID a una entrada no existente no tiene ningún efecto y la desexportación de todos los identificadores de enlace elimina la entrada.

Nota

El encabezado rpcnsi.h define RpcNsBindingExport como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de rpcnsi.h (include Rpc.h)
biblioteca de Rpcns4.lib
DLL de Rpcns4.dll

Consulte también

rpcBindingFromStringBinding

rpcEpRegister

rpcEpRegisterNoReplace

RpcNsBindingUnexport

rpcServerInqBindings

RpcServerUseAllProtseqs

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf