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.
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 |
---|---|
|
La llamada se realizó correctamente. |
|
No había nada que exportar. |
|
El identificador de enlace no era válido. |
|
Este era el tipo incorrecto de enlace para la operación. |
|
La sintaxis de nombre no es válida. |
|
No se admite la sintaxis de nombre. |
|
El nombre está incompleto. |
|
Sin privilegios para la operación de servicio de nombres. |
|
El servicio de nombre no está disponible. |
Observaciones
La función de RpcNsBindingExport de
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:
- Registre una o varias secuencias de protocolo con la biblioteca en tiempo de ejecución de RPC local llamando a una de las funciones siguientes:
- Obtenga una lista de enlaces de servidor llamando a la función de rpcServerInqBindings
.
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 |