Función RpcEpRegisterNoReplace (rpcdce.h)
La función RpcEpRegisterNoReplace agrega información de dirección de servidor a la base de datos local de mapa de puntos de conexión.
Sintaxis
RPC_STATUS RpcEpRegisterNoReplace(
RPC_IF_HANDLE IfSpec,
RPC_BINDING_VECTOR *BindingVector,
UUID_VECTOR *UuidVector,
RPC_CSTR Annotation
);
Parámetros
IfSpec
Interfaz para registrarse con la base de datos local de mapa de puntos de conexión.
BindingVector
Puntero a un vector de identificadores de enlace sobre los que el servidor puede recibir llamadas a procedimientos remotos.
UuidVector
Puntero a un vector de UUID de objeto ofrecido por el servidor. La aplicación de servidor construye este vector.
Un valor de parámetro null indica que no hay UUID de objeto que se van a registrar.
Annotation
Puntero al comentario de cadena de caracteres aplicado a cada elemento entre productos agregado a la base de datos local del mapa del punto de conexión. La cadena puede tener hasta 64 caracteres, incluido el carácter de terminación null. Especifique un valor NULL o una cadena terminada en NULL ("\0") si no hay ninguna cadena de anotación.
Las aplicaciones usan la cadena de anotación solo para obtener información. RPC no usa esta cadena para determinar con qué instancia de servidor se comunica un cliente o para enumerar los elementos de la base de datos de mapa de puntos de conexión.
Valor devuelto
Valor | Significado |
---|---|
|
La llamada se realizó correctamente. |
|
Sin enlaces. |
|
El identificador de enlace no era válido. |
|
Este era el tipo incorrecto de enlace para la operación. |
Comentarios
La función RpcEpRegisterNoReplace agrega entradas a la base de datos de mapa de puntos de conexión del host local. Esta función no reemplaza las entradas de base de datos existentes.
Un servidor usa RpcEpRegisterNoReplace en lugar de RpcEpRegister cuando varias instancias del servidor se ejecutarán en el mismo host. En otras palabras, use esta función cuando más de una instancia de servidor ofrecerá el mismo UUID de interfaz, UUID de objeto y secuencia de protocolo en cualquier momento.
Dado que las entradas no se reemplazan al llamar a RpcEpRegisterNoReplace, los servidores deben anular su registro antes de dejar de ejecutarse. De lo contrario, los datos obsoletos se acumulan cada vez que una instancia del servidor deja de ejecutarse sin llamar a RpcEpUnregister. Las entradas obsoletas aumentan la probabilidad de que un cliente reciba puntos de conexión a servidores inexistentes. El cliente dedicará tiempo a intentar comunicarse con un servidor inexistente antes de obtener otro punto de conexión.
Un servidor puede usar RpcEpRegister y RpcEpRegisterNoReplace para registrar entradas en la base de datos del asignador de puntos de conexión. Antes de Windows 2000, había dos funciones disponibles para permitir que un servidor sobrescriba entradas obsoletas en la base de datos del asignador de puntos de conexión dejó de instancias de servidor anteriores que ya no se están ejecutando. La base de datos del asignador de puntos de conexión quita automáticamente las entradas registradas por una instancia del servidor en cuanto el servidor deja de funcionar. Sin embargo, no se permite que los servidores reemplacen las entradas del asignador de puntos de conexión de otro servidor con fines de seguridad. Por lo tanto, RpcEpRegister y RpcEpRegisterNoReplace realizan en gran medida la misma funcionalidad.
Una aplicación de servidor llama a RpcEpRegister para registrar los puntos de conexión especificados mediante una llamada a cualquiera de las funciones siguientes:
- RpcServerUseAllProtseqs
- RpcServerUseProtseq
- RpcServerUseProtseqEp
- RpcServerUseAllProtseqsIf
- RpcServerUseProtseqIf
Si se usa una secuencia de protocolo sin especificar un punto de conexión, la biblioteca en tiempo de ejecución rpc genera automáticamente un punto de conexión dinámico. En este caso, el servidor puede llamar a RpcServerInqBindings seguido de RpcEpRegisterNoReplace para que esté disponible para varios clientes. De lo contrario, el servidor iniciado automáticamente solo se conoce al cliente para el que se inició el servidor.
Cada elemento agregado a la base de datos de mapa de puntos de conexión contiene lógicamente lo siguiente:
- UUID de interfaz
- Versión de interfaz (principal y secundaria)
- Identificador de enlace
- UUID de objeto (opcional)
- Anotación (opcional)
Requisitos
Requisito | Value |
---|---|
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 | rpcdce.h (incluir Rpc.h) |
Library | Rpcrt4.lib |
Archivo DLL | Rpcrt4.dll |