Função RpcEpRegisterNoReplace (rpcdce.h)
A função RpcEpRegisterNoReplace adiciona informações de endereço de servidor ao banco de dados local do mapa de ponto de extremidade.
Sintaxe
RPC_STATUS RpcEpRegisterNoReplace(
RPC_IF_HANDLE IfSpec,
RPC_BINDING_VECTOR *BindingVector,
UUID_VECTOR *UuidVector,
RPC_CSTR Annotation
);
Parâmetros
IfSpec
Interface a ser registrada com o banco de dados de mapa de ponto de extremidade local.
BindingVector
Ponteiro para um vetor de identificadores de associação sobre os quais o servidor pode receber chamadas de procedimento remoto.
UuidVector
Ponteiro para um vetor de UUIDs de objeto oferecidos pelo servidor. O aplicativo de servidor constrói esse vetor.
Um valor de parâmetro nulo indica que não há UUIDs de objeto para registrar.
Annotation
Ponteiro para o comentário de cadeia de caracteres aplicado a cada elemento de produto cruzado adicionado ao banco de dados de mapa de ponto de extremidade local. A cadeia de caracteres pode ter até 64 caracteres, incluindo o caractere de terminação nula. Especifique um valor nulo ou uma cadeia de caracteres terminada em nulo ("\0") se não houver nenhuma cadeia de caracteres de anotação.
A cadeia de caracteres de anotação é usada por aplicativos somente para informações. O RPC não usa essa cadeia de caracteres para determinar com qual instância de servidor um cliente se comunica ou para enumerar elementos no banco de dados de mapa de ponto de extremidade.
Valor retornado
Valor | Significado |
---|---|
|
A chamada foi bem-sucedida. |
|
Sem associações. |
|
O identificador de associação era inválido. |
|
Esse era o tipo errado de associação para a operação. |
Comentários
A função RpcEpRegisterNoReplace adiciona entradas ao banco de dados de mapa de ponto de extremidade do host local. Essa função não substitui entradas de banco de dados existentes.
Um servidor usa RpcEpRegisterNoReplace em vez de RpcEpRegister quando várias instâncias do servidor serão executadas no mesmo host. Em outras palavras, use essa função quando mais de uma instância de servidor oferecer a mesma interface UUID, UUID de objeto e sequência de protocolo a qualquer momento.
Como as entradas não são substituídas ao chamar RpcEpRegisterNoReplace, os servidores devem cancelar o registro antes de deixarem de ser executados. Caso contrário, os dados obsoletos serão acumulados sempre que uma instância de servidor parar de ser executada sem chamar RpcEpUnregister. Entradas obsoletas aumentam a probabilidade de um cliente receber pontos de extremidade para servidores inexistentes. O cliente gastará tempo tentando se comunicar com um servidor inexistente antes de obter outro ponto de extremidade.
Um servidor pode usar RpcEpRegister e RpcEpRegisterNoReplace para registrar entradas no banco de dados mapeador do ponto de extremidade. Anteriormente ao Windows 2000, duas funções estavam disponíveis para permitir que um servidor substituísse entradas obsoletas no banco de dados mapeador de ponto de extremidade deixado de instâncias de servidor anteriores que não estão mais em execução. O banco de dados mapeador de ponto de extremidade remove automaticamente as entradas registradas por uma instância de servidor assim que o servidor para de funcionar. No entanto, os servidores não têm permissão para substituir as entradas do mapeador de ponto de extremidade de outro servidor para fins de segurança. Portanto, RpcEpRegister e RpcEpRegisterNoReplace executam em grande parte a mesma funcionalidade.
Um aplicativo de servidor chama RpcEpRegister para registrar pontos de extremidade especificados chamando qualquer uma das seguintes funções:
- RpcServerUseAllProtseqs
- RpcServerUseProtseq
- RpcServerUseProtseqEp
- RpcServerUseAllProtseqsIf
- RpcServerUseProtseqIf
Se uma sequência de protocolo for usada sem especificar um ponto de extremidade, a biblioteca de tempo de execução RPC gerará automaticamente um ponto de extremidade dinâmico. Nesse caso, o servidor pode chamar RpcServerInqBindings seguido por RpcEpRegisterNoReplace para se disponibilizar para vários clientes. Caso contrário, o servidor iniciado automaticamente é conhecido apenas pelo cliente para o qual o servidor foi iniciado.
Cada elemento adicionado ao banco de dados de mapa de ponto de extremidade contém logicamente o seguinte:
- Interface UUID
- Versão da interface (principal e secundária)
- Identificador de associação
- UUID do objeto (opcional)
- Anotação (opcional)
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | rpcdce.h (inclua Rpc.h) |
Biblioteca | Rpcrt4.lib |
DLL | Rpcrt4.dll |